GraphQL é uma linguagem de consulta para sua API, criado pelo Facebook em 2012 e lançada em 2015, ele tem um tempo de execução do lado do servidor para executar consultas usando um sistema de tipos que o usuário define para seus dados. GraphQL não é vinculado com nenhum banco de dados ou mecanismo de armazenamento, em vez disso, é apoiado por seu código e dados existentes. GraphQL não chega a ser um framework, mas é uma linguagem que possui implementações em diversas linguagens.
Graph tem um serviço para cria e definir tipos de campos e nesses tipos, fornecendo funções para cada campo em cada tipo. Por exemplo, um serviço GraphQL que nos diz quem é o usuário conectado ( me) e o nome desse usuário podem se parecer com isso:
- type Query {
- me: User
- }
- type User {
- id: ID
- name: String
- }
Juntamente com funções para cada campo em cada tipo:
- function Query_me(request) {
- return request.auth.user;
- }
- function User_name(user) {
- return user.getName();
- }
Depois que um serviço GraphQL estiver em execução (normalmente em uma URL em um serviço da Web), ele poderá receber consultas do GraphQL para validar e executar. Uma consulta recebida é primeiro verificada para garantir que se refere apenas aos tipos e campos definidos e, em seguida, executa as funções fornecidas para produzir um resultado.
Por exemplo, a consulta:
- {
- me {
- name
- }
- }
Pode produzir o resultado JSON:
- {
- “me” : {
- “name” : “Luke Skywalker”
- }
- }
Para mais informações clique aqui!
Linguagens que usam GraphQL e Configurações.
Python
Uma biblioteca Python para criar APIs GraphQL.
Para executar um script hello world do Graphene:
- pip install graphene
Em seguida, execute python hello.pycom este código em hello.py:
- import graphene
- class Query(graphene.ObjectType):
- hello = graphene.String(name=graphene.String(default_value=“World”))
- def resolve_hello(self, info, name):
- return ‘Hello ‘ + name
- schema = graphene.Schema(query=Query)
- result = schema.execute(‘{ hello }’)
- print(result.data[‘hello’]) # “Hello World”
Ruby
Uma biblioteca Ruby para criar APIs GraphQL.
Para executar um script hello world com graphql-ruby:
- gem install graphql
Em seguida, execute ruby hello.rb com este código em hello.rb:
- require ‘graphql’
- class QueryType < GraphQL::Schema::Object
- graphql_name ‘Query’
- field :hello do
- type types.String
- resolve –> (obj, args, ctx) { ‘Hello world!’ }
- end
- end
- class Schema < GraphQL::Schema
- query QueryType
- end
- puts Schema.execute(‘{ hello }’).to_json
Também existem boas ligações para Relay e Rails.
Para saber mais sobre outras linguagens clique aqui!