Если ваша единственная проблема заключается в отсутствии выделенного клиента на стороне клиента, и вы можете жить с длинными URL-адресами, ваша конечная точка graphql является вашим RESTlike API. Отказ от ответственности: непроверенный код только для образовательных целей;)
Читать все сообщения:
GET /api/posts
=>
GET /graphql?query={posts{id title body}}
Создать сообщение
POST /api/posts
{ "title": "Hello", "body": "world" }
=>
POST /graphql?query=mutation m($title:String!,$body:String!){createPost(title:$title,body:$body){id title body}
{ "variables": { "title": "Hello", "body": "world" } }
Затем ваш код может работать в стиле REST (представьте, что избыточные действия вызывают REST API).
Если вы хотите чего-то большего с точки зрения сервера, вы можете легко изменить то, что вы описали здесь:
Я знаю, что есть способы построить сервер GraphQL поверх конечных точек REST,
Вы можете создать прокси, который переписывает ваши запросы REST в запросы GraphQL. Это может быть намного проще, чем сопоставление конечной точки REST с GraphQL, поскольку ваш GraphQL API намного мощнее.
Некоторый экспресс-код node.js, так как я не знаю никакого python :(
const Lokka = require('lokka').Lokka;
const Transport = require('lokka-transport-http').Transport;
const express = require('express');
const client = new Lokka({
transport: new Transport('...')
});
const app = express();
app.get('/api/posts', (req, res) => {
client.query('{posts{id title body}}').then(result => {
res.status(200).send(result);
}).catch(error => {
res.status(500).end(); // Or other error handling
});
});
person
Herku
schedule
06.01.2018