restful api框架支持hateoas,并与flask、django、sqlalchemy等兼容。

ripozo的Python项目详细描述


test statustest coverageDocumentation Statuspython versionsstars

ripozo是构建restful/hateoas/hypermediaapi的工具。它提供了 强大,简单,完全合格的资源之间的链接,暴露的能力 资源上的可用操作和必要参数,以及公开 多个休息协议(即警报器和哈尔)。最后,ripozo是高度可扩展的。 它能够与任何web框架或数据库集成,并且您可以轻松地推出 你自己的休息协议。

为什么要用里波佐?

  • 强烈支持资源间链接(hateoas/hypermedia)
  • 灵活(可用于任何Web框架、数据库或响应协议)
  • 快速开发(特别是在使用扩展时,如烧瓶Ripozo或Django Ripozo)
  • 能够从Web API公开对资源的操作(自我发现)

示例

您需要使用包含的调度器之一创建调度器 在框架扩展中。您可以在 The ripozo ecosystem部分。如果它不在那里,你总是可以推出自己的。

最小值

fromripozoimportapimethod,adapters,ResourceBase# import the dispatcher class for your preferred webframeworkclassMyResource(ResourceBase):@apimethod(methods=['GET'])defsay_hello(cls,request):returncls(properties=dict(hello='world'))# initialize the dispatcher for your framework# e.g. dispatcher = FlaskDispatcher(app)dispatcher.register_adapters(adapters.SirenAdapter,adapters.HalAdapter)dispatcher.register_resources(MyResource)

就像这样,你有一个api可以返回siren或hal 格式化响应。很简单,对吧?

满积垢+l

另一方面,如果您想要一个完整的crud+l(create、retrieve、update、delete和list)。 您可以使用其中一个管理器扩展(django-ripozoripozo-sqlalchemy,和ripozo-cassandraall 包括随时可用的基本管理器)。有细微差别 在不同的扩展中创建管理器类和实例,但在核心上它们都遵循以下原则 格式。

fromripozoimportrestmixinsfromfake_ripozo_extensionimportManagerfrommyapp.modelsimportMyModel# An ORM model for example a sqlalchemy or Django model.classMyManager(Manager):fields=('id','field1','field2',)model=MyModelclassMyResource(restmixins.CRUDL):manager=MyManager()pks=('id',)# Create your dispatcher and register the resource...
重要的是要注意,每一个都有RestMyxin。 个体CRUD+L(即RestMyxin。 可以混合并与你的快乐相匹配的行为。

文档

ripozo documentation

里波佐生态系统

目前,Ripozo已与Django、Flask、SqlAlchemy集成, 和卡桑德拉(通过cqlengine)。提供了文档链接 下面。

FrameworksDatabases
flask-ripozoripozo-sqlalchemy
django-ripozoripozo-cassandra

为里波佐建了一个分机?让我们知道,我们会在这里添加它!

安装

pip install ripozo

版本控制

在版本1.0.0之前,ripozo版本控制遵循sentimental versioning。1.0.0之后的版本 标准的major.minor.patch样式。

  • 修补程序:前后兼容
  • 小调:向后兼容
  • 专业:无担保

贡献

想帮忙吗?我们会喜欢的!Github将是Ripozo的开发中心。 如果您有任何问题、意见或投诉,请将其张贴在那里。另外,我们 肯定会接受拉取请求(提示:我们几乎总是喜欢更多的测试和 文件)。我们只有几个请求:

  • 每个方法、函数和类都应该有一个完整的docstring
  • 每个函数和方法至少应有一个单元测试
  • 将请求保留到一个问题。(最好先在github上打开一个问题进行记录)

名字后面

里波佐在世界语中翻译为“休息”。世界语被设计成一种通用语言。任何人, 不管他们的母语是什么,都能很容易地学习和使用。同样,里波佐的意图 成为一个通用的rest框架。无论您对数据库、web框架或 协议,Ripozo使它易于构建。

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

推荐PyPI第三方库


热门话题
未检测到“空格”的java ASCII码   音频如何在Java中设置SourceDataLine的音量   java MyBatissSpringBoot无法使用作为bean注入的数据源   Java字谜递归列表<List<String>>仅存储空列表<Strings>   java显示30px高的JPanel,然后用minecraft填充剩余空间   java JOGL平滑度   Java:按完整与否对1d对象数组进行排序   arraylist仅当java结构不存在时才将对象添加到java结构中   无法初始化java渲染库在安卓 studio 4.1.1上出现错误   java SpringBoot ClassCastException   java解析文本文件,基于字数   java=运算符引发异常   java使点可拖动并存储新坐标JavaFx   JavaWebSphereApplicationServer:EJB模块和JMS路由器