1 个稳定版本
1.0.0 | 2021年5月14日 |
---|
#52 in #sample
305KB
5.5K SLoC
Rust对hvcg_example_openapi_entity的API
这是一个示例服务器Petstore服务器。为此示例,您可以使用API密钥 special-key
来测试授权过滤器。
概述
此客户端/服务器由[openapi-generator]项目生成。通过使用来自远程服务器的OpenAPI-Spec,您可以轻松生成服务器存根。
要了解如何将其变为自己的,请查看此处
- API版本:1.0.0
- 构建日期:2021-05-14T20:40:15.040864+07:00[亚洲/曼谷]
此自动生成项目定义了一个API包 hvcg_example_openapi_entity
,其中包含
- 定义Rust中API的
Api
特质。 - 代表底层数据模型的数据类型。
- 实现
Api
并为每个操作发出HTTP请求的Client
类型。 - 接受HTTP请求并调用每个操作的适当
Api
方法的路由器。
它还包含一个示例服务器和客户端,它们使用 hvcg_example_openapi_entity
- 示例服务器启动一个使用
hvcg_example_openapi_entity
路由器的Web服务器,并提供了对每个操作返回失败的简单Api
实现。 - 示例客户端提供了一个CLI,允许您通过在命令行中传递适当的参数调用
hvcg_example_openapi_entity
客户端的任何单个操作。
您可以将示例服务器和客户端作为您自己的代码的基础。有关实现服务器的详细信息,请参阅下文。
示例
使用以下命令运行示例
cargo run --example <example-name>
要将参数传递给示例,请将它们放在 --
之后,例如
cargo run --example client -- --help
运行示例服务器
要运行服务器,请按照以下简单步骤操作
cargo run --example server
运行示例客户端
要运行客户端,请按照以下简单步骤之一操作
cargo run --example client DeletePet
cargo run --example client FindPetsByStatus
cargo run --example client FindPetsByTags
cargo run --example client GetPetById
cargo run --example client UpdatePetWithForm
cargo run --example client UploadFile
cargo run --example client DeleteOrder
cargo run --example client GetInventory
cargo run --example client GetOrderById
cargo run --example client CreateUsersWithArrayInput
cargo run --example client CreateUsersWithListInput
cargo run --example client DeleteUser
cargo run --example client GetUserByName
cargo run --example client LoginUser
cargo run --example client LogoutUser
HTTPS
可以通过传递标志 --https
在HTTPS模式下运行示例,例如
cargo run --example server -- --https
这将使用示例目录中的密钥/证书。请注意,服务器链由 CN=localhost
签名。
使用生成的库
生成的库包含一些可通过Cargo激活的可选功能。
服务器
- 默认启用,并创建基于hyper的服务器实现的基本框架。
- 要创建服务器堆栈,您需要提供一个API特质的实现来提供服务器功能。
客户端
- 默认启用,并创建基于hyper的客户端实现的基本框架。
- 构建的客户端通过远程API调用实现API特质。
转换
- 默认禁用,并在模型上创建额外的 derives 以允许结构相似类型的“变形”。
有关如何在 Cargo.toml
中使用功能的说明,请参阅 https://doc.rust-lang.net.cn/cargo/reference/manifest.html#the-features-section。
API端点文档
所有URI均相对于 http://petstore.swagger.io/v2
方法 | HTTP请求 | 描述 |
---|---|---|
addPet | POST /pet | 向商店添加新宠物 |
deletePet | DELETE /pet/{petId} | 删除宠物 |
findPetsByStatus | GET /pet/findByStatus | 按状态查找宠物 |
findPetsByTags | GET /pet/findByTags | 按标签查找宠物 |
getPetById | GET /pet/{petId} | 按ID查找宠物 |
updatePet | PUT /pet | 更新现有宠物 |
updatePetWithForm | POST /pet/{petId} | 使用表单数据更新商店中的宠物 |
uploadFile | POST /pet/{petId}/uploadImage | 上传图片 |
deleteOrder | DELETE /store/order/{orderId} | 按ID删除购买订单 |
getInventory | GET /store/inventory | 按状态返回宠物库存 |
getOrderById | GET /store/order/{orderId} | 按ID查找购买订单 |
placeOrder | POST /store/order | 为宠物下订单 |
createUser | POST /user | 创建用户 |
createUsersWithArrayInput | POST /user/createWithArray | 创建给定输入数组的用户列表 |
createUsersWithListInput | POST /user/createWithList | 创建给定输入数组的用户列表 |
deleteUser | DELETE /user/{username} | 删除用户 |
getUserByName | GET /user/{username} | 按用户名获取用户 |
loginUser | GET /user/login | 登录系统 |
logoutUser | GET /user/logout | 注销当前登录用户会话 |
updateUser | PUT /user/{username} | 更新用户 |
模型文档
授权文档
api_key
- 类型: API密钥
示例
petstore_auth
- 类型: OAuth
- 流程: 隐式
- 授权URL: http://petstore.swagger.io/api/oauth/dialog
- 作用域:
- write:pets: 修改您账户中的宠物
- read:pets: 读取您的宠物
示例
或通过OAuth2模块自动刷新令牌并执行用户身份验证。
作者
依赖项
~12–24MB
~352K SLoC