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 |
|
BLAKE2b-256 | ed74db5197beb8d1462cc54adbb701bc4f3037ac174edba5bc658fcecf388fe2 |