Juniper 是 Rust 语言的 GraphQL 服务器库,用最少量的样板文件和配置构建类型安全且快速的 API 服务器。
GraphQL 是Facebook开发的一种数据查询语言,旨在为移动和 Web 应用程序前端提供服务。Juniper 使得以 Rust 语言编写类型安全且速度惊人的 GraphQL 服务器成为可能,我们还尝试尽可能方便地声明和解析 GraphQL 模式。Juniper 不包含 Web 服务器,仅提供了构建快,使得其与已有服务器的集成简单明了。Juniper 可选地为 Hyper、Iron、Rocket,以及 Warp等框架提供了预构建集成,并嵌入了 Graphiql,以便于调试。
- Cargo crate
- API Reference
Juniper 中文手册
《Juniper 中文手册》包含 Juniper 中文文档和代码示例,基于 actix-web + juniper + diesel 构建 GraphQL 服务器的模板代码,放置在 github 仓库 actix-graphql-react,部署在演示站点 - https://api.budshome.com/gql。所用技术包括:
- Rust
- actix-web - Web server
- juniper - GraphQL server
- diesel - ORM
- PostgreSQL - Database
- jsonwebtoken - JSON Web Token
- GraphQL Playground - GraphQL UI
特点Juniper 根据 GraphQL 规范定义支持完整的 GraphQL 查询语言,包括:接口、联合、模式内省,以及验证。但是不支持模式语言。Juniper 作为 Rust 语言的 GraphQL 库,默认构建非空类型。类型为 Vec 的字段将被转换为 [Episode!]!,相应的 Rust 语言类型则为 Option>>。 集成 数据类型Juniper 与一些较常见的 Rust 库进行了自动集成,使构建模式变得简单,被集成的 Rust 库中的类型将在 GraphQL 模式中自动可用。uuidurlchrono Web 框架
- hyper
- rocket
- iron
- warp
- actix-web
https://books.budshome.com/juniper - 是《Juniper 中文手册》的在线阅读站点,全面介绍了 juniper的优势特点和使用方法。
点击阅读原文进行更详细的学习。