Update readme
This commit is contained in:
parent
5564abc8ac
commit
2acd9b91a3
75
README.rst
75
README.rst
@ -8,7 +8,6 @@ How to install
|
|||||||
|
|
||||||
$ pip install aiohttp_pydantic
|
$ pip install aiohttp_pydantic
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@ -71,3 +70,77 @@ Example:
|
|||||||
|
|
||||||
$ curl -H "Content-Type: application/json" -X post http://127.0.0.1:8080/article --data '{"name": "toto", "nb_page": "3"}'
|
$ curl -H "Content-Type: application/json" -X post http://127.0.0.1:8080/article --data '{"name": "toto", "nb_page": "3"}'
|
||||||
{"name": "toto", "number_of_page": 3}
|
{"name": "toto", "number_of_page": 3}
|
||||||
|
|
||||||
|
API:
|
||||||
|
----
|
||||||
|
|
||||||
|
Inject Path Parameters
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To declare a path parameters, you must declare your argument as a `positional-only parameters`_:
|
||||||
|
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
class AccountView(PydanticView):
|
||||||
|
async def get(self, customer_id: str, account_id: str, /):
|
||||||
|
...
|
||||||
|
|
||||||
|
app = web.Application()
|
||||||
|
app.router.add_get('/customers/{customer_id}/accounts/{account_id}', AccountView)
|
||||||
|
|
||||||
|
Inject Query String Parameters
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To declare a query parameters, you must declare your argument as simple argument:
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
class AccountView(PydanticView):
|
||||||
|
async def get(self, customer_id: str):
|
||||||
|
...
|
||||||
|
|
||||||
|
app = web.Application()
|
||||||
|
app.router.add_get('/customers', AccountView)
|
||||||
|
|
||||||
|
Inject Request Body
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To declare a body parameters, you must declare your argument as a simple argument annotated with `pydantic Model`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
class Customer(BaseModel):
|
||||||
|
first_name: str
|
||||||
|
last_name: str
|
||||||
|
|
||||||
|
class CustomerView(PydanticView):
|
||||||
|
async def post(self, customer: Customer):
|
||||||
|
...
|
||||||
|
|
||||||
|
app = web.Application()
|
||||||
|
app.router.add_view('/customers', CustomerView)
|
||||||
|
|
||||||
|
Inject HTTP headers
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
To declare a HTTP headers parameters, you must declare your argument as a `keyword-only argument`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. code-block:: python3
|
||||||
|
|
||||||
|
class CustomerView(PydanticView):
|
||||||
|
async def get(self, *, authorization: str, expire_at: datetime):
|
||||||
|
...
|
||||||
|
|
||||||
|
app = web.Application()
|
||||||
|
app.router.add_view('/customers', CustomerView)
|
||||||
|
|
||||||
|
|
||||||
|
.. _positional-only parameters: https://www.python.org/dev/peps/pep-0570/
|
||||||
|
.. _pydantic Model: https://pydantic-docs.helpmanual.io/usage/models/
|
||||||
|
.. _keyword-only argument: https://www.python.org/dev/peps/pep-3102/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user