restapi提供静态JSON文件

stares-api的Python项目详细描述


标准API

staresapi是一个轻量级服务,旨在快速原型化API和 通过RESTful服务轻松地提供静态内容。 它基于最快的WSGI之一CherryPy 用Python(source)编写的框架。在

特点

遍历文件夹结构并将每个JSON文件作为RESTful服务提供。 JSON文件的根元素必须是数组。在

Allowed query params per resource是requestes元素的数目n。 默认情况下,它服务于一个元素。 如果要查询所有元素,只需使用n = all查询资源。在

如果查询的元素多于数组所包含的元素,那么它将重复这些条目。在

另一个查询参数是shuffle参数。将其设置为true1,以便查询数组列表的随机样本。 同样,如果您将其与nn > resource.length组合,则将发生重复操作。在

服务的每个对象都包含一个名为__hash的键值对。 __hash值是为每个对象分配的唯一哈希值。 如果您坚持从JSON文件中排除特定的元素,这将非常有用。在

示例

服务在端口8080上本地提供。 API基URL的值为/api/v1。在

# query the first element of the sample resource "ipsum.json"
curl http://localhost:8080/api/v1/ipsum

# query the first 3 elements
curl http://localhost:8080/api/v1/ipsum?n=3

# query all elements
curl http://localhost:8080/api/v1/ipsum?n=all

# query a random element:
curl http://localhost:8080/api/v1/ipsum?shuffle=true
curl http://localhost:8080/api/v1/ipsum?shuffle=1

# query 3 random elements:
curl http://localhost:8080/api/v1/ipsum?n=3&shuffle=true

# query all elements in a random order
curl http://localhost:8080/api/v1/ipsum?n=all&shuffle=true

设置

目前,staresapi在PyPI上不可用。我很快会再加上的。在

目前,托管它的唯一方法是克隆存储库。 在存储库的根文件夹(而不是源文件夹)中,执行 stares.py文件。在

^{pr2}$

默认情况下,staresapi将查找名为resources的目录。 如果目录不存在,将创建该目录。 但是,热重新加载还没有实现。在

配置

托多

托管目录:/var/www/api

默认情况下,该服务在文件夹/var/www/api中查找文件。 子文件夹resources包含默认资源文件,除非另有指定。 子文件夹public可以包含公共服务的文件。 索引文件应命名为index.html。在

待办事项:

  • []创建Pip包并通过Pip提供
  • []嵌套存储库,在遍历文件夹结构时
  • []热重新加载资源目录
  • []异常处理以增加用户体验
  • [x] 描述API资源的文档页
  • []定制记录器以增加用户体验
  • []包含要服务的静态文件的可配置根目录

许可证

麻省理工学院执照

版权所有(c)2020 stares api

兹免费准许任何人取得复制品 本软件及其相关文档文件(“软件”)的 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的使用者 根据以下条件提供:

上述版权声明和本许可声明应包括在所有 软件的副本或大部分。在

本软件按“原样”提供,无任何形式的保证,明示或 包括但不限于适销性保证, 特定目的的适用性和非侵犯性。在任何情况下 作者或版权持有人应对任何索赔、损害赔偿或其他 无论是在合同诉讼、侵权诉讼或其他诉讼中,由以下原因引起的责任:, 与软件、软件的使用或其他交易有关 软件。在

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

推荐PyPI第三方库


热门话题
java Springboot数据JPA findByDate()   java是否可以有多个顶级树节点?   javahibernatehql。子查询中的多个   使用Twilio验证java Keyclope电话号码   java重写对象的toString()表示返回意外的符号   java Android最多每15分钟调用一个方法,否则使用保存的数据   在java swing中突出显示jeditorpane中的一些单词   java将时间戳转换为UTC时区   由于main中存在ArrayIndexOutOfBoundsException,导致java编译错误   java如何通过requestscope获取对象内部对象的值?   java访问安卓代码内的网站并检索生成的图像   java这种日期格式的模式是什么?   java解析包含超链接的xml字符串