Como isso:
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"
Estou preocupado com o referenceId .
O domínio do sistema é uma plataforma que é integrada a terceiros de várias maneiras através da exportação e importação de dados de vários formatos (xml, excel). Ele é maduro o suficiente para permitir que terceiros se integrem ao nosso sistema por meio de uma API e o design dessa API é o que leva a essa pergunta.
Temos um objeto, uma campanha, que possui um ID que pode ser usado para identificar e recuperar o recurso. Os consumidores de nossa API podem ter seu próprio código de referência para o que consideram uma campanha em seu domínio.
Existem outros objetos em nosso sistema com campos de referência de terceiros como esse e é esperado de nossos consumidores existentes. No entanto, eu me preocupo que isso imponha o ônus do mapeamento e não sabemos o que é esse referenceId (número, texto, json?) E adiciona outra propriedade confusa à API para novos consumidores.
É considerado má prática ou design inadequado permitir campos de ID de referência de terceiros nas definições de objeto público para uma API?