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"
}