Build routes using swagger specification
Project description
Package to build routes and validate request using swagger specification 2.0.
Features
Building of the routing from specification swagger
Using inclusions other specifications with concatenate url
Optional output of the resulting specification and view embed swagger-ui
Advanced router with TreeResource
Extract specify parameters from request and validate with jsonschema
Serialize data as response with middleware
Usecase
Package aiohttp_apiset allows supports several strategies:
The foreign specification. When the specification is made and maintained by another team.
The specification in the code. When the fragments of specification are placed in the docstrings.
Mixed strategy. When routing are located in the specification files and operations are described in the docstrings.
Example
async def handler(request, pet_id):
"""
---
tags: [Pet]
description: Info about pet
parameters:
- name: pet_id
in: path
type: integer
minimum: 0
responses:
200:
description: OK
400:
description: Validation error
404:
description: Not found
"""
pet = await db.pets.find(pet_id)
if not pet:
return {'status': 404, 'msg': 'Not Found'}
return {
'pet': pet, # dict serialized inside jsonify
}
def main():
router = SwaggerRouter(
swagger_ui='/swagger/',
version_ui=2,
)
router.add_get('/pets/{pet_id}', handler=handler)
app = web.Application(
router=router,
middlewares=[jsonify],
)
web.run_app(app)
Is now available in the swagger-ui to the address http://localhost:8080/swagger/. Available both branch swagger-ui. For use branch 3.x visit http://localhost:8080/swagger/?version=3
Examples: examples
Development
Check code:
hatch run lint:all
Format code:
hatch run lint:fmt
Run tests:
hatch run pytest
Run tests with coverage:
hatch run cov
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.
Source Distribution
Built Distribution
File details
Details for the file aiohttp_apiset-0.9.16.tar.gz
.
File metadata
- Download URL: aiohttp_apiset-0.9.16.tar.gz
- Upload date:
- Size: 8.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.24.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa8b8d09e36813e1aaea581a9e8364a44f1a25f1ca9c63b5b420d51789a03e60 |
|
MD5 | 73fd007d570df4899bd8961d31d394ab |
|
BLAKE2b-256 | aad01ab31722f7123ba37f2abb4bb75e126b43d3d869380e05cabe794b2d85c5 |
File details
Details for the file aiohttp_apiset-0.9.16-py3-none-any.whl
.
File metadata
- Download URL: aiohttp_apiset-0.9.16-py3-none-any.whl
- Upload date:
- Size: 8.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.24.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d743e945906d527a96590f66fe1e2cb7070920607edcfc573fe6372281d97f6 |
|
MD5 | dc4df103483445d933f323ddf92c2630 |
|
BLAKE2b-256 | f94444ce0191a47fb655af12b4e30723cadd47abad0eac1e53a343689404c022 |