python 微服务_omg.py - 用于优秀的开放式微服务指南的Python微框架

程英资
2023-12-01

omg.py

A micro-framework for the excellent

Note: this is pre-release software, and is subject to improvement. Contributions are welcome! This framework is being developed for other languages, as well. If you'd like to help, let us know!

Intended / Example Usage

$ cat service.py

import omg

from uuid import uuid4

service = omg.Microservice(name='uuid')

@service.register()

def new(prefix: str) -> str:

"""Generates a UUID, with a given prefix."""

return f'{prefix}{uuid4().hex}'

if __name__ == '__main__':

service.serve(ensure=True)

register takes some optional arguments: name and path. You can also call service.add(f=new), instead.

If not available on disk, the required Dockerfile and microservice.yml files will automatically be generated, for your application:

$ cat microservice.yml

actions:

new:

help: Generates a UUID, with a given prefix.

arguments:

prefix:

in: query

required: true

type: string

http:

method: get

path: /new

port: 8080

output:

type: string

lifecycle:

startup:

command:

- python3

- /app/service.py

omg: 1

$ cat Dockerfile

FROM kennethreitz/pipenv

COPY . /app

CMD ["python3", "service.py"]

Now, run your microservice!

$ python service.py

2019-05-09 14:45:39,342 - micro - DEBUG - Initiating 'uuid' service.

2019-05-09 14:45:39,344 - micro - DEBUG - Registering Flask endpoint: '/new'

2019-05-09 14:45:39,344 - micro - DEBUG - Dockerfile './Dockerfile' already exists!

2019-05-09 14:45:39,345 - micro - DEBUG - Microservice Manifest './microservice.yml' already exists!

2019-05-09 14:45:39,346 - micro - INFO - Serving on: '*:8080'

This will spawn a Flask application (using the production-ready waitress web server), preconfigured to serve the masses!

Or, use the omg-cli:

$ omg run new -a prefix='user-'

Installation

$ pip install omg.py

P.S. Do provide feedback, if you desire! :)

 类似资料: