【问题标题】:Querying REST API with Cursor Pagination from Server with Apollo-Server-Express使用 Apollo-Server-Express 从服务器中使用光标分页查询 REST API
【发布时间】:2018-12-24 11:13:30
【问题描述】:

使用 Apollo-Server-Express,我想用 GraphQL 包装一个 REST API。我从免费使用 SWAPI(星球大战 API)开始。我找不到任何关于使用 apollo-server-express 使用光标分页进行服务器端获取的信息。我发现唯一可能的事情是 fetchMore,因为它是针对 Apollo 客户端的。任何帮助将不胜感激。这是我的代码:

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;

解析器.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-js apollo-client apollo-server


    【解决方案1】:

    我相信apollo-server 不提供开箱即用的光标分页。

    您可以自己实现它。或者,您可以使用(或获得灵感)Relay 使用的那个。

    根据Apollo client,如果您使用 Relay 样式的光标分页,客户端支持它。

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 2022-11-19
      • 2016-12-24
      • 1970-01-01
      • 2019-05-26
      • 2017-11-18
      • 2015-02-16
      • 2017-01-02
      • 2019-12-28
      相关资源
      最近更新 更多