GraphQL 메시: Migrando API REST sem esquema para GraphQL sem escrever nenhum codigo

GraphQL은 원본 파일을 생성하기 위해 API를 사용하여 기존 코드를 생성합니다. API REST 파라메터의 API REST 사용 중단과 같은 실제 문제 GraphQL 및 GraphQL 커뮤니티 프록시. Isso traz muitos benefícios, porque nos dá a opportunidade de repensar a API e melhorá-la, sem alterar os serviços por baixo dela.

Vamos Primeiro Começar Observando essa abordagem:

백엔드 프록시 GraphQL 구현



Digamos que você tenha um endereco /user que faz todas as operações CRUD para a entidade User , 다양한 방법 HTTP, e você precisaria de um esquema GraphQL como abaixo:

type Query {
  user(id: ID): User
}

type Mutation {
  createUser(input: UserInput): User
  updateUser(id: ID, input: UserInput): User
  deleteUser(id: ID): ID
}

type User {
  id: ID
  name: String
  age: Int
}

input UserInput {
  name: String
  age: Int
}

API REST로 GraphQL을 사용하여 GraphQL como abaixo를 해결하기 위해 사전 요구 사항에 대한 정보를 제공합니다.

module.exports = {
   Query: {
      user: (root, args) => fetch('https://myrest.com/user/' + args.id)
      .then(res => res.json())
   },
  Mutation: {
     createUser: (root, args) => fetch('https://myrest.com/user', {
       method: 'PUT',
       body: JSON.stringify(args.input)
      }).then(res => res.json()),
    updateUser:  (root, args) => fetch('https://myrest.com/user' + args.id, {
       method: 'POST',
       body: JSON.stringify(args.input)
    }).then(res => res.json()),
    deleteUser:  (root, args) => fetch('https://myrest.com/user' + args.id, {
       method: 'DELETE'
    }).then(res => res.json()),
};

모범 사례 que você tem um endereço /user/:id que obtém uma entidade User com HTTP GET , usuário com 제외 HTTP DELETE e atualiza 음 User com o id e 페이로드 fornecido. Além disso, o endereco /user 크리아 음 노보 User com o 페이로드 fornecido.

API REST for atualizada e se tornar maior를 구현하는 데 어려움을 겪을 수 있습니다.

Usando GraphQL Mesh는 코드에 포함됩니다.



GraphQL 메쉬 및 기타 구성 요소의 다양한 글꼴 및 그래프 Você pode verificar o artigo de lançamento para saber mais .

자동화된 통신 시스템의 제어 기능 - OpenAPI/Swagger, gRPC, SOAP e outros, esquema JSON 처리 방식 GraphQL com base for JSON arquidosque의 기본 사항 Esse manipulador também pode gerar o esquema JSON no tempo de execução com base no payload de solicitação e nos dados de resposta.

Primeiro você precisa criar um projeto, vamos usar yarn em um diretório vazio:

yarn init

Depois disso, precisamos instalar algumas do GraphQL Mesh:

yarn add @graphql-mesh/cli @graphql-mesh/json-schema graphql

크으으으으음 .meshrc.yml GraphQL Mesh와 새로운 프로젝트 구성에 대한 질문:

sources:
  - name: MyRest
    handler:
      jsonSchema:
        baseUrl: https://myrest.com/
        operations:
          - type: Query
            field: user
            path: /user/{args.id}
            method: GET
            responseSample: ./getUserResponse.json
          - type: Mutation
            field: createUser
            path: /user
            method: POST
            requestSample: ./createUserRequest.json
            responseSample: ./createUserResponse.json
          - type: Mutation
            field: updateUser
            path: /user/{args.id}
            method: PUT
            requestSample: ./updateUserRequest.json
            responseSample: ./updateUserResponse.json
          - type: Mutation
            field: deleteUser
            path: /user/{args.id}
            method: DELETE
            responseSample: ./deleteUserResponse.json

Como você pode ver na configuração, definimos nossos endereços sem uma única linha de codigo. Depois de criar este arquivo de configuração. Precisamos obter arquivos de solicitação e resposta de amostra, podemos fazer isso chamando esses endereços localmente.

Com um único comando, nosso novo servidor GraphQL está pronto para uso:

yarn mesh serve

Não é só um gateway, mas também, uma SDK 통합 도구



GraphQL Mesh 및 Capaz de gerar um SDK com tipagem segura a partir da API GraphQL gerada porque o esquema GraphQL gerado é localmente. GraphQLSchema podem ser executados sem um servidor HTTP.

Isso significa que você pode usar o GraphQL Mesh dentro de seus serviços ou clientes existentes, como um SDK , 단순함, 단순함, 기본 구성 요소에 대한 기본 구성 요소.


신용



  • Migrating from Schemaless REST API to GraphQL without writing any code , escrito originalmente por .
  • 좋은 웹페이지 즐겨찾기