OMG的微型框架,以及用Python3.6+编写的代码。

omg-micro的Python项目详细描述


omg.py

一个用于优秀的Open Microservices Guide的微框架,用于用python 3.6+编写支持代码。

注意:这是预发布软件,有待改进。欢迎投稿!这个框架也是为other languages开发的。如果你愿意帮忙,let us know

预期/示例用法

$ cat service.py
importomgfromuuidimportuuid4service=omg.Microservice(name='uuid')@service.register()defnew(prefix:str)->str:"""Generates a UUID, with a given prefix."""returnf'{prefix}{uuid4().hex}'if__name__=='__main__':service.serve()

register接受一些可选参数:namepath。您也可以改为调用service.add(f=new)

接下来,运行命令$ omg-generatemicroservice.yml将自动为您的应用程序生成文件:

$ omg-generate service:service
…
'microservice.yml' written to disk!
$ cat microservice.ymlactions:new:help:Generates a UUID, with a given prefix.arguments:prefix:in:queryrequired:truetype:stringhttp:method:getpath:/newport:8080output:type:stringlifecycle:startup:command:-python3-/app/service.pyomg:1
$ cat Dockerfile
FROM kennethreitz/pipenv
COPY . /app
CMD ["python3", "service.py"]

现在,运行你的微服务!

$ 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'

这将产生一个烧瓶应用程序(使用生产就绪的waitress web server),预先配置为服务大众!

或者,使用omg-cli

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

安装

$ pip install omg.py

p.s.如果您愿意,请提供反馈!:)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnClick用于ListView中的特定项   java如何多次循环相同的TestNG测试。包括课前和课后   java如何在Codenameone中设置BrowserComponent浏览器窗口大小   java Socketchannel始终为空   java以编程方式向JavaFX WebEngine历史添加新条目   java Hibernate+Spring与Oracle一起使用分层查询(从+连接方式开始)   Java中的安卓 getView和Beacon(Estimote)问题   计时器如何在java中设置暂停选项   java为什么输入1000000000000的输出不正确?   java如何在程序执行期间更改log4j2中的日志记录级别   java阻止代码引发XML异常   未找到媒体类型为application/json的java JAX RS MessageBodyWriter   java如何将BuffereImage中的特定颜色(0xFF00FF)设置为透明?   java如何列出web元素,如果网页中没有特定链接的id,如何单击网页中的特定链接?   在Java中读取txt文件时获取EOFEException   java如何避免为每个视图添加inject方法?   JavaSpringController:Facebook上类似文章的永久链接   java在尝试执行脚本时遇到错误“net.serentiybdd.core.exceptions.serentitymanagedexception:No session ID”