794 B
794 B
Actix-web
Async-graphql-actix-web
提供实现了actix_web::FromRequest
的Request
,它其实是async_graphql::Request
的包装,你可以调用Request::into_inner
把它转换成一个async_graphql::Request
。
WSSubscription
是一个支持Web Socket订阅的Actor。
请求例子
你需要把Schema传入actix_web::App
作为全局数据。
async fn index(
schema: web::Data<Schema>,
request: Request,
) -> web::Json<Response> {
web::Json(Response(schema.execute(request.into_inner()).await)
}
订阅例子
async fn index_ws(
schema: web::Data<Schema>,
req: HttpRequest,
payload: web::Payload,
) -> Result<HttpResponse> {
ws::start_with_protocols(WSSubscription::new(&schema), &["graphql-ws"], &req, payload)
}