Me gusta esto:
Campaign:
type: object
properties:
id:
type: string
description: "A GUID identifier"
referenceId:
type: string
description: "A consumers identifier they have used to map their own systems logic to this object."
name:
type: string
description: "'Great Campaign 2017' as an example"
Estoy preocupado por la referenciaId .
El dominio del sistema es una plataforma que se integra con terceros de muchas maneras a través de exportaciones de datos e importaciones de varios formatos (xml, excel). Es lo suficientemente maduro como para permitir que terceros se integren con nuestro sistema a través de una API y el diseño de esta API es lo que genera esta pregunta.
Tenemos un objeto, una Campaña, que tiene una identificación que se puede utilizar para identificar y recuperar el recurso. Los consumidores de nuestra API pueden tener su propio código de referencia para lo que consideran una Campaña dentro de su dominio.
Hay otros objetos en nuestro sistema con campos de referencia de terceros como este y se espera de nuestros consumidores existentes. Sin embargo, me preocupa que nos imponga la carga del mapeo y no sabemos cuál es este ID de referencia (número, texto, json?) Y agrega otra propiedad confusa a la API para los nuevos consumidores.
¿Se considera una mala práctica o un mal diseño permitir campos de Id de referencia de terceros en las definiciones de objetos públicos para una API?