`
cywhoyi
  • 浏览: 420104 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Rust的Graphql支持

阅读更多
#![feature(decl_macro, proc_macro_hygiene)]

use rocket::response::content;
use rocket::State;

use juniper::tests::model::Database;
use juniper::tests::schema::Query;
use juniper::{EmptyMutation, RootNode};

type Schema = RootNode<'static, Query, EmptyMutation<Database>>;

#[rocket::get("/")]
fn graphiql() -> content::Html<String> {
    juniper_rocket::playground_source("/graphql")
}

#[rocket::get("/graphql?<request>")]
fn get_graphql_handler(
    context: State<Database>,
    request: juniper_rocket::GraphQLRequest,
    schema: State<Schema>,
) -> juniper_rocket::GraphQLResponse {
    request.execute(&schema, &context)
}

#[rocket::post("/graphql", data = "<request>")]
fn post_graphql_handler(
    context: State<Database>,
    request: juniper_rocket::GraphQLRequest,
    schema: State<Schema>,
) -> juniper_rocket::GraphQLResponse {
    request.execute(&schema, &context)
}

fn main() {
    rocket::ignite()
        .manage(Database::new())
        .manage(Schema::new(Query, EmptyMutation::<Database>::new()))
        .mount(
            "/",
            rocket::routes![graphiql, get_graphql_handler, post_graphql_handler],
        )
        .launch();
}

 结论:

基于Juniper和Rocket支持的Graphql,性能确实很突出,写一些简单的服务,可以尝试下。

1
1
分享到:
评论

相关推荐

    rust-graphql:具有Juniper和Rocket的Rust GraphQL服务器示例

    在本文中,我们将深入探讨如何使用Rust编程语言构建一个GraphQL服务器,具体是基于Juniper和Rocket两个库的实现。这两个库在Rust生态系统中分别扮演着GraphQL解析和Web服务框架的角色,使得开发者能够轻松地搭建高效...

    Python-Rust的GraphQL服务器库

    它支持从Rust结构体直接映射到GraphQL类型,使得开发过程更为简洁。 在Python开发中,与Rust编写的GraphQL服务交互可能涉及到使用Python的HTTP客户端库(如requests)来发送GraphQL查询,并处理返回的结果。此外,...

    graphql-client —在Rust中输入正确的GraphQL请求和响应。-Rust开发

    支持GraphQL片段,对象,graphql_client Rust的类型化GraphQL客户端库。 具有查询变量和响应的精确类型。 支持GraphQL片段,对象,联合,输入,枚举,自定义标量和输入对象。 在浏览器(WebAssembly)中工作。 订阅...

    rust-hasura:Rust Hasura GraphQL

    【rust-hasura:Rust与Hasura GraphQL的整合】 在当今的软件开发中,GraphQL以其高效的数据查询能力,已经成为API设计的重要工具。Hasura是一个基于PostgreSQL的GraphQL引擎,它能够快速地为现有的数据库提供...

    async-graphql:在Rust中实现的GraphQL服务器库

    async-graphql还支持与其他Rust库的集成,如Actix-web、Tide或Axum等Web框架,让你可以轻松地将GraphQL API嵌入到现有的Web应用中。此外,库还提供了强大的错误处理机制,以及自定义类型转换功能,方便你处理各种...

    一个用 Rust 实现的 GraphQL 服务器库

    一个用 Rust 实现的 GraphQL 服务器库Async-graphql是一个高性能的服务器端库,支持所有 GraphQL 规范。功能比较书中文文档文档GitHub 存储库货物包最低支持的 Rust 版本:1.46 或更高版本安全这个 crate 使用#!...

    Async-graphql是在Rust中实现的GraphQL服务器库-Rust开发

    Rust Async-graphql中实现的GraphQL服务器库是支持所有GraphQL规范的高性能服务器端库。 功能比较书中文文档Docs GitHub存储库货运软件包最低支持的Rust版本:1.46或更高版本安全该箱使用#![forbid(unsafe_code)...

    rust_graphql_api_boilerplate:通过Rust + Warp + Juniper + Diesel构建的GraphQL API样板

    这个项目"rust_graphql_api_boilerplate"是一个使用Rust编程语言,结合Warp web框架,Juniper GraphQL库,以及Diesel ORM工具来构建GraphQL API的起点模板。下面我们将详细探讨这些技术栈及其相互作用。 首先,Rust...

    graphql-client:在Rust中输入正确的GraphQL请求和响应

    总之,graphql-client是Rust开发人员处理GraphQL API的强大工具,它简化了构建、发送和解析GraphQL请求的过程,同时也支持在WebAssembly环境中的使用。通过利用这个库,你可以更高效地构建对GraphQL服务的客户端应用...

    graphql-rust-demo:GraphQL Rust演示

    【GraphQL Rust演示】项目是一个基于Rust编程语言的示例应用,它展示了如何在Rust环境中集成和使用GraphQL。GraphQL是一种强大的查询语言,用于API,它允许客户端定义他们需要的数据,从而提高了数据获取的效率和...

    杜松:Rust的GraphQL服务器库

    杜松(Juniper)是基于Rust编程语言的GraphQL服务器库,专为构建高效、安全且类型安全的GraphQL服务而设计。GraphQL是一种由Facebook开发的查询语言,用于API,允许客户端定义他们想要的数据,从而避免了过度或不足...

    RustChinaConf2020-15.油条哥-《Async-graphql的介绍与实现》.pdf

    Async-graphql是一个用Rust编程语言实现的异步GraphQL服务端库。这个库由孙黎(油条哥)发起并维护,旨在为开发者提供一个完全支持异步操作、严格遵循GraphQL规范、类型安全且性能优异的解决方案。此外,Async-...

    gurkle:用于Rust的GraphQL客户端,带有键入的请求和响应以及订阅!

    支持将GraphQL字段设置为弃用,并让Rust编译器检查其使用。 用法 安装CLI工具。 运行gurkle generate --schema-path &lt;your&gt; path/to/operations/*.graphql 这将在当前目录中生成一个mod.rs 自定义标量 生成的代码...

    在 Rust 中输入正确的 GraphQL 请求和响应

    支持将 GraphQL 字段设置为已弃用并让 Rust 编译器检查它们的使用。用于来自浏览器的无样板 API 调用的Web 客户端。入门如果你对 GraphQL 不熟悉,官网提供了非常好的全面的介绍。一旦您编写了查询(很可能在类似...

    graphql-parser:用于锈的graphql查询语言和模式定义语言解析器和格式化程序

    标签中的"GraphQLRust"表明这个库是Rust社区对GraphQL支持的一部分,意味着开发者可以利用Rust的生态系统和其他库,如`async-graphql`或`juniper`,来构建完整的GraphQL服务器。 在压缩包`graphql-parser-master`中...

    适用于 Rust、Node.js 和 Python 的下一代 Web 框架

    支持Rust、Node.js和Python。支持MySQL,PostgreSQL,SQLite和MongoDB。生成的ORM类型定义。生成的前端请求代码。非常效率和高性能。数据净化、转换和验证。内建的用户session。内建的权限检查。先进后出的中间件。...

    MoonZoon是一个Rust Fullstack框架。-Rust开发

    否Javascript否CSS否HTML否REST否GraphQL否SQL否分析瘫痪否车轮重塑否密码*生锈快速简单可扩展SEO Auth MoonZoon CLI轻松部署离线支持*身份验证方法在Backend.md Web Cure Cure for Web Dev中进行了描述

    graphql-config:此板条箱可根据graphql-config规范为GraphQL配置提供反序列化

    该库尚不支持。 当前,该库遵循。例子let config = json! ({ "schemaPath" : "./schema.graphql" , "includes" : [ "./graphql/*.graphql" ], "projects" : { "amazingLibrary" : { "schemaPath" : "./...

    juniper-from-schema:使用Juniper在Rust中架构第一个GraphQL

    这意味着您可以拥有一个真实的模式文件,并确保它与您的Rust实现相匹配。 它还删除了与使用瞻博网络有关的大多数样板。寻找瞻博网络0.15支持吗? 在crates.io(0.5.2)上发布的juniper-from-schema版本不支持...

    cockbot-后端:用于与cockbot数据库接口的GraphQL后端

    1. **GraphQL服务器**:后端可能采用了如`graphql-rust`或`Juniper`等Rust库来实现GraphQL服务器。这些库允许开发者定义GraphQL类型和解析器,从而创建一个可处理客户端查询的API。 2. **数据库集成**:Cockbot后端...

Global site tag (gtag.js) - Google Analytics