Conceitos, Ideias, Estratégias
Conceitos, Ideias, EstratégiasEstratégias para hierarquias de API

Estratégias para hierarquias de API

Podemos aplicar diferentes ideias para configurar uma hierarquia para nossos endpoints de API.

Query primeiro, sobrescrever o schema

Podemos definir o pai para conter uma query GraphQL comum e depois estendê-la para cada uma das diferentes aplicações.

Por exemplo, a persisted query pai /graphql-query/posts/ definirá a query GraphQL:

query GetPosts {
  posts {
    id
    title
    url
  }
}

E as persisted queries filhas, para o site e o aplicativo mobile, definirão a schema configuration correspondente:

  • /graphql-query/posts/website/ => usa a schema configuration "Website"
  • /graphql-query/posts/mobile-app/ => usa a schema configuration "Mobile app"

Schema primeiro, sobrescrever a query

Alternativamente, podemos declarar a schema configuration no nível do pai, e então todos os filhos a herdam e implementam apenas a query GraphQL:

  • /graphql-query/mobile-app/posts/
  • /graphql-query/mobile-app/users/
  • /graphql-query/website/posts/
  • /graphql-query/website/users/

Traduzir o endpoint

Traduza o conteúdo em um endpoint fornecendo o código do idioma via uma variável, que pode ser sobrescrita pelo endpoint filho.

Por exemplo, podemos criar uma persisted query /graphql-query/posts/ com esta query GraphQL:

query GetTranslatedPosts($lang: String!) {
  posts {
    title @strTranslate(from: "en", to: $lang)
    url
  }
}

Não precisamos executar este endpoint diretamente, portanto ele pode ser desativado.

Em seguida, criamos a persisted query filha /graphql-query/posts/french/, que sobrescreve a variável GraphQL:

{
  "lang": "fr"
}