API service, library and parser for BBFC
Project description
BBFC API
Web API and Python library for BBFC.
High-Level REST Web API
To use the REST API to query BBFC, first run the web server:
$ uvicorn bbfcapi.apiweb:app
Then, to query the API using curl
:
$ curl "127.0.0.1:8000?title=interstellar&year=2014"
{"title":"INTERSTELLAR","year":2014,"age_rating":"12"}
Or, to query the API from another web page:
async function call()
{
const response = await fetch('http://127.0.0.1:8000/?title=interstellar&year=2014');
const responseJson = await response.json();
console.log(JSON.stringify(responseJson));
}
call();
Additional notes:
- HTTP 404 Not Found is returned when there is no film found.
- Browse documentation @ http://127.0.0.1:8000/redoc.
- Or, browse documentation @ http://127.0.0.1:8000/docs.
High-Level Python Library
To use the library to get results from BBFC asynchronously:
from bbfcapi.apilib import top_search_result
print(await top_search_result(title="interstellar", year=2014))
To use the library to get results from BBFC synchronously:
import asyncio
from bbfcapi.apilib import top_search_result
print(asyncio.run(top_search_result(title="interstellar", year=2014)))
Low-Level Python Library
To use the library to get raw HTML pages from BBFC asynchronously:
from bbfcapi import client
print(await client.search(title="interstellar", year=2014))
To use the library to get raw HTML pages from BBFC synchronously:
import asyncio
from bbfcapi import client
print(asyncio.run(client.search(title="interstellar", year=2014)))
To use the library to parse raw HTML pages from BBFC:
from bbfcapi import parser
print(parser.parse_top_search_result(b"<BBFC search page byte-string>"))
Development
poetry install
to set up the virtualenv (one-off)poetry run uvicorn bbfcapi.apiweb:app --reload
to run the web servermake fix
,make check
, andmake test
before committing
There is also make test-live
which will run live integration tests against
the BBFC website.
Contributing
Pull requests are welcome :)
Publishing
This application is published on PyPi.
- Ensure you have configured the PyPi repository with Poetry (one-off)
- Run
make release
to execute the check-list
To publish to the test repository:
- Ensure you have configured the Test PyPi repository with Poetry (one-off)
poetry publish --build -r testpypi
to upload to the test repository
Changelog
v1.0.0 - 2020-01-19
- First release of bbfcapi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.