Skip to main content

Generate http files from design schema inspired by goa

Project description

nameko-design

logo

Generate Nameko http files from design schema inspired by goa

Dependencies

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


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 details)

Uploaded Source

Built Distribution

nameko_design-0.1.dev2-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file nameko-design-0.1.dev2.tar.gz.

File metadata

  • Download URL: nameko-design-0.1.dev2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.12 CPython/3.6.0 Darwin/18.7.0

File hashes

Hashes for nameko-design-0.1.dev2.tar.gz
Algorithm Hash digest
SHA256 9b83ddc9eebcc2f2ca35fb9a9b0267708b1f2d3cc459b815a60d347fa34a0837
MD5 e7ba06e4e8d55cb4b151d458210b425a
BLAKE2b-256 c387ba59e70eabdd70507e6cb1479c98b5885ca2bb0f0fb4266931d1ff10ce42

See more details on using hashes here.

File details

Details for the file nameko_design-0.1.dev2-py3-none-any.whl.

File metadata

File hashes

Hashes for nameko_design-0.1.dev2-py3-none-any.whl
Algorithm Hash digest
SHA256 2843d6aa10fd18fcdc14063458b8bea33ffe6f6165cdb68f72082024f9dc4439
MD5 96e3b72da24c04beea46537d15e3e373
BLAKE2b-256 ed74db5197beb8d1462cc54adbb701bc4f3037ac174edba5bc658fcecf388fe2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page