Estrategias para jerarquías de API
Podemos aplicar diferentes ideas para configurar una jerarquía para nuestros endpoints de API.
Consulta primero, sobrescribir esquema
Podemos definir el padre para que contenga una consulta GraphQL común, y luego extenderla para cada una de las diferentes aplicaciones.
Por ejemplo, la consulta persistida padre /graphql-query/posts/ definirá la consulta GraphQL:
query GetPosts {
posts {
id
title
url
}
}Y las consultas persistidas hijo, para el sitio web y la aplicación móvil, establecerán la configuración de esquema correspondiente:
/graphql-query/posts/website/=> usar la schema configuration"Website"/graphql-query/posts/mobile-app/=> usar la schema configuration"Mobile app"
Esquema primero, sobrescribir consulta
Alternativamente, podemos declarar la configuración del esquema en el nivel padre, y luego todos los hijos la heredan, e implementar solo la consulta GraphQL:
/graphql-query/mobile-app/posts//graphql-query/mobile-app/users//graphql-query/website/posts//graphql-query/website/users/
Traducir endpoint
Traduce el contenido en un endpoint proporcionando el código de idioma mediante una variable, que puede ser sobrescrita por el endpoint hijo.
Por ejemplo, podemos crear una consulta persistida /graphql-query/posts/ con esta consulta GraphQL:
query GetTranslatedPosts($lang: String!) {
posts {
title @strTranslate(from: "en", to: $lang)
url
}
}No necesitamos ejecutar este endpoint directamente, por lo que puede deshabilitarse.
Luego, creamos la consulta persistida hijo /graphql-query/posts/french/, que sobrescribe la variable GraphQL:
{
"lang": "fr"
}