Conceptos, ideas, estrategias
Conceptos, ideas, estrategiasEstrategias para jerarquías de API

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