#web #openapi #http #http-api #swagger #http-client #http-server

bin+lib paperclip

OpenAPI 工具库,用于类型安全的编译时检查 HTTP API

13 个版本 (7 个重大更改)

0.8.2 2023 年 9 月 27 日
0.8.0 2023 年 1 月 14 日
0.7.1 2022 年 7 月 27 日
0.6.1 2021 年 10 月 15 日
0.3.0 2019 年 7 月 30 日

#198Web 编程

Download history 3940/week @ 2024-04-08 4385/week @ 2024-04-15 3156/week @ 2024-04-22 3661/week @ 2024-04-29 4107/week @ 2024-05-06 4274/week @ 2024-05-13 3939/week @ 2024-05-20 4246/week @ 2024-05-27 5766/week @ 2024-06-03 4131/week @ 2024-06-10 4739/week @ 2024-06-17 3192/week @ 2024-06-24 2972/week @ 2024-07-01 3176/week @ 2024-07-08 3423/week @ 2024-07-15 2714/week @ 2024-07-22

12,385 每月下载量
5 个包 中使用

MIT/Apache

8.5MB
49K SLoC

JavaScript 27K SLoC // 0.1% comments JSX 13K SLoC // 0.0% comments Rust 8K SLoC // 0.0% comments Handlebars 678 SLoC Shell 112 SLoC // 0.1% comments Bitbake 51 SLoC // 0.1% comments

Paperclip

Build Status Linter Status Usage docs API docs Crates.io

Paperclip 为 OpenAPI 规范 提供工具。完成后,它将提供

  • Rust 中高效、类型安全、编译时检查的 HTTP API(服务器、客户端和 CLI)代码生成。
  • 支持处理、验证和托管 OpenAPI 规范。
  • 对规范和代码生成的自定义。

它目前正在积极开发中,可能还不适合生产使用。

你可能还对以下内容感兴趣

本地开发

  • 请确保已安装 rustup。在仓库目录下运行 cd 并执行 make prepare 以设置您的环境。
  • 现在运行 make 来构建和运行测试。

贡献

本项目欢迎所有类型的贡献。任何贡献都不算小!

如果您想为此项目做出贡献但不知道从何开始,或者需要与此项目相关的帮助,请随时通过电子邮件(在 Github 个人资料中)或加入 Discord 服务器

行为准则

本项目遵循 Rust 行为准则

许可

以下任一许可下获得许可

任选其一。

赞助商

为该项目开发提供赞助的人士

常见问题解答

为什么这个生成的是原始 Rust 代码,而不是利用 过程宏 进行编译时代码生成?

我认为进程宏不是用于REST API的正确方法。我们需要能够以某种方式看到生成的代码,以识别名称、字段、支持的方法等。使用进程宏,你只能大概猜测。

这并不意味着你不能在编译时生成API。唯一的区别是,你将使用构建脚本而不是,并使用include!包含相关代码。话虽如此,我们正在使用进程宏做其他事情。

编译时抛出的错误看起来并不是很有用。难道没有更好的方法来做这件事吗?

很遗憾,我想不出什么方法。

需要新的想法。

依赖关系

~6–24MB
~409K SLoC