17个版本
0.7.6 | 2022年2月2日 |
---|---|
0.7.4 | 2021年6月8日 |
0.7.2 | 2021年1月28日 |
0.7.0 | 2020年12月10日 |
0.1.1 | 2017年12月3日 |
#1244 in HTTP服务器
每月90次下载
1.5MB
36K SLoC
juniper_iron
此仓库包含Iron Web框架集成,用于Juniper,这是一个针对Rust的GraphQL实现。
有关文档,包括指南和示例,请参阅Juniper。
基本使用示例也可以在Api文档中找到。
示例
请检查examples/iron_server.rs以获取具有GraphQL处理器的Iron服务器的工作示例代码。
链接
许可证
本项目采用BSD-2许可证。
请查看LICENSE文件以获取详细信息。
lib.rs
:
juniper_iron
此仓库包含Iron Web框架集成,用于Juniper,这是一个针对Rust的GraphQL实现。
有关文档,包括指南和示例,请参阅Juniper。
基本使用示例也可以在Api文档中找到。
链接
与Iron集成
例如,从上面创建的模式继续使用Iron在支持GET和POST请求的HTTP端点公开模式
#
use iron::prelude::*;
use juniper_iron::GraphQLHandler;
use juniper::{Context, EmptyMutation, EmptySubscription};
#
#
#
#
#
#
// This function is executed for every request. Here, we would realistically
// provide a database connection or similar. For this example, we'll be
// creating the database from scratch.
fn context_factory(_: &mut Request) -> IronResult<Database> {
Ok(Database {
users: vec![
( "1000".to_owned(), User {
id: "1000".to_owned(), name: "Robin".to_owned(),
friend_ids: vec!["1001".to_owned()] } ),
( "1001".to_owned(), User {
id: "1001".to_owned(), name: "Max".to_owned(),
friend_ids: vec!["1000".to_owned()] } ),
].into_iter().collect()
})
}
impl Context for Database {}
fn main() {
// GraphQLHandler takes a context factory function, the root object,
// and the mutation object. If we don't have any mutations to expose, we
// can use the empty tuple () to indicate absence.
let graphql_endpoint = GraphQLHandler::new(
context_factory,
QueryRoot,
EmptyMutation::<Database>::new(),
EmptySubscription::<Database>::new(),
);
// Start serving the schema at the root on port 8080.
Iron::new(graphql_endpoint).http("localhost:8080").unwrap();
}
有关支持哪些请求方法的更多信息,请参阅GraphQLHandler
文档。
依赖项
~11MB
~226K SLoC