此立方体是CubicWeb 4中将集成的新的API。
项目描述
此立方体公开了新的API,用更简单的架构替换了RQLController立方体。我们计划将此新API直接集成到CubicWeb中,而不必依赖于此立方体。
您可以使用CubicWebJS客户端在JavaScript中与此API通信。请参阅项目React Admin CubicWeb,了解如何使用CubicWebJS。
⚠️ 请注意,此立方体将稍后集成到CubicWeb中。安装说明仅适用于API立方体在其自己的存储库中存在时。
愿景
目标是提供一个最小的API界面,类似于兼容SPARQL的数据服务器。为此,此API主要提供发送RQL请求的路由。
只有几个辅助端点用于登录、获取数据模式以及获取有关服务器设置的调试信息。这些端点要么在RQL中无法表达,要么是简化调试所必需的。
我们不会创建端点以简化常见的RQL请求。相反,提供辅助工具以简化请求创建的责任在于每个客户端。
如果您通过RQL表达需求有困难,请在我们Matrix频道提问或打开CubicWeb存储库上的问题。根据需要,我们可能会更新RQL以添加新功能!
设置
通过运行以下命令使用pip安装此立方体
pip install cubicweb_api
然后打开您的 CubicWeb 实例的 __pkginfo__.py 文件,并在 __depends__ 字典中添加 cubicweb-api。
现有实例
如果您要将 API 添加到现有实例,则需要手动添加立方体并运行迁移。为此,请运行以下命令(将 <YOUR_INSTANCE> 替换为您的实例名称)
使用 cubicweb-ctl shell <YOUR_INSTANCE> 打开一个 shell。在该 shell 中输入 add_cube(api),然后输入 exit() 离开 shell。
最后升级您的实例
cubicweb-ctl upgrade <YOUR_INSTANCE>
该命令将提示您编辑 all-in-one.conf 文件。接受更改以写入此立方体可用的默认配置选项。
配置选项
在 pyramid.ini 中提供了几个配置选项
cubicweb_api.api_path_prefix
在主机名之后提供 API 的路径。默认为 api。API 版本号将添加到该前缀之后(目前只有 v1)。
示例
对于部署在 http://localhost:8080 上的 cubicweb 实例。
API 将默认部署在 http://localhost:8080/api/v1。
如果您将选项设置为 cubicweb_api.api_path_prefix = my/custom/path,它将部署在 http://localhost:8080/my/custom/path/v1。
cubicweb.includes = cubicweb_api.auth.routes
包括 cubicweb_api.auth.routes 以启用登录和注销路由。这些路由将使用在 cubicweb 中启用的任何身份验证策略。
cubicweb.includes = cubicweb_api.auth.jwt
包括 cubicweb_api.auth.jwt 以启用 JWT Cookie 身份验证策略。
⚠️ 此功能为实验性,请不要在生产环境中使用
可用路由
此立方体使用 OpenAPI 规范来描述和验证数据。完整的规范可在 openapi_template.yaml 中找到。
在运行实例上,<PREFIX>/openapi 路由以交互式 HTML 页面提供规范(默认设置为 http://localhost:8080/api/v1/openapi)。<PREFIX>/openapi.yaml 路由提供原始 YAML 文件。
身份验证
向登录路由发送有效凭据时,将在 Set-Cookie 标头中生成并发送一个 JWT 令牌。此令牌必须作为 cookie 发送,每个请求才能成功。
请注意,默认情况下禁用了登录路由(请参阅“配置选项”部分)。
故障排除
Pyramid
根据您的 pyramid 配置,您可能需要手动包括 api 路由,通过在您的 pyramid.ini 中添加此行来完成
cubicweb.includes = cubicweb_api
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
构建发行版
立方web_api-0.15.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e8ddac53318ca53641a0f837e9974ba38e52d387deb3ca179be4ea337adb9c4e |
|
MD5 | e54d1a458ffe76111184a439946e214b |
|
BLAKE2b-256 | 946a1c19fcddc6563d025bac45b85c4823b81539ec9aa603fd49060ab34752b6 |
立方web_api-0.15.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d8c10ec7079e36bf9373a71b43f1f0c3357c2f14cd9680d52e1bf302b0955a5d |
|
MD5 | 83cc9b1172c921d25f145063093c6112 |
|
BLAKE2b-256 | e980dfb021fc66699a31141c61817862cbcebbac2624693405d6bc3d58ffa8ee |