Запрос REST API с разбивкой на страницы курсора с сервера с помощью Apollo-Server-Express

Используя Apollo-Server-Express, я хочу обернуть REST API с помощью GraphQL. Я начинаю с бесплатного использования SWAPI (API Звездных войн). Я ничего не могу найти о загрузке на стороне сервера с помощью разбиения на страницы курсора с помощью apollo-server-express. Единственное, что я обнаружил, это могло быть возможным, поскольку оно предназначено для клиента Apollo, - это fetchMore. Любая помощь будет принята с благодарностью. Вот мой код:

schema.js

// Imports: GraphQL
import { makeExecutableSchema } from 'graphql-tools';

// Imports: GraphQL TypeDefs & Resolvers
import TYPEDEFS from './types.js';
import RESOLVERS from './resolvers.js';


// GraphQL: Schema
const SCHEMA = makeExecutableSchema({
  typeDefs: TYPEDEFS,
  resolvers: RESOLVERS
});

export default SCHEMA;

types.js

const TYPEDEFS = `
    type Query {
    getFilm(id: ID): Film
    getAllFilms: [Film]
}

type Film {
    title: String!
    episode_id: Int!
    opening_crawl: String
    director: String
    producer: String
    release_date: String
    characters: [Person]
    planets: [Planet]
    starships: [Starship]
    vehicles: [Vehicle]
    species: [Species]
    created: String
    edited: String
    url: String
    }
}`

export default TYPEDEFS;

resolvers.js

import fetch from 'node-fetch';


const RESOLVERS = {
    Query: {
        // Search for a Film by ID
        getFilm: async (parent, args) => {
            const response = await
            fetch(`https://swapi.co/api/films/${args.id}`);
            return response.json();
        },
        getAllFilms: async (parent, args) => {
            const response = await
            fetch(`https://swapi.co/api/films/`);
            return response.json();
        }
    }
};

export default RESOLVERS;
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
649
1

Ответы 1

Я считаю, что apollo-server не поддерживает разбиение курсора на страницы из коробки.

Вы можете реализовать это самостоятельно. Или вы можете использовать (или вдохновиться) тот, который использует Реле.

И согласно Клиент Apollo, если вы используете разбиение курсора на страницы в стиле Relay, клиент поддерживает его.

Другие вопросы по теме