Generate http files from design schema inspired by goa
Project description
nameko-design
Generate Nameko http files from design schema inspired by goa
Dependencies
- Python3.6
- Poetry
Installation
cd nameko-design
poetry install
Usage
cd nameko-design
poetry run nameko-design nameko_design/sample.py
Design
This API design schema
with Service('http_service'): Title('This is a http service') with Method('liveness'): Description('liveness probe') Result(str) HTTP(GET, '/liveness') with Method('readiness'): Description('readiness probe') Result(str) HTTP(GET, '/readiness')
will generate the below nameko file
from nameko.web.handlers import http class HttpService: name = 'http service' @http('GET', '/liveness') def liveness(self, request) -> str: pass @http('GET', '/readiness') def readiness(self, request) -> str: pass
TODO
- Configure http url and port
- Add URL parameter and type
- Add payload (name, type, description, position etc)
- Add validation
- Add gRPC server
- Generate proto files
- Generate swagger json
What I want:
with Service('example_service'): Title('This is an example service') with Method('liveness'): Description('liveness probe') Result(str) HTTP(GET, '/liveness') with Method('add'): Description('a + b') with Payload(): # Not yet implemented Field(1, "a", int, "left operand") # Not yet implemented Field(2, "b", int, "right operand") # Not yet implemented Required("a", "b") # Not yet implemented Result(int) HTTP(GET, '/add/{a}/{b}') # Not yet implemented GRPC() # Not yet implemented
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
nameko-design-0.1.dev2.tar.gz
(4.1 kB
view hashes)
Built Distribution
Close
Hashes for nameko_design-0.1.dev2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2843d6aa10fd18fcdc14063458b8bea33ffe6f6165cdb68f72082024f9dc4439 |
|
MD5 | 96e3b72da24c04beea46537d15e3e373 |
|
BLAKE2-256 | ed74db5197beb8d1462cc54adbb701bc4f3037ac174edba5bc658fcecf388fe2 |