In questo modo:
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"
Sono preoccupato per referenceId .
Il dominio di sistema è una piattaforma che è integrata con terze parti in molti modi attraverso le esportazioni di dati e le importazioni di vari formati (xml, excel). È abbastanza maturo da consentire a terze parti di integrarsi con il nostro sistema tramite un'API e il design di questa API è ciò che richiede questa domanda.
Abbiamo un oggetto, una campagna, che ha un ID che può essere utilizzato per identificare e recuperare la risorsa. I consumatori della nostra API possono avere il proprio codice di riferimento per quello che considerano una campagna all'interno del loro dominio.
Ci sono altri oggetti nel nostro sistema con campi di riferimento di terze parti come questo ed è atteso dai nostri consumatori esistenti. Comunque mi preoccupo, questo ci mette l'onere della mappatura e non sappiamo cosa sia questo referenceId (numero, testo, json?) E aggiunge un'altra proprietà di confusione all'API per i nuovi consumatori.
Considerare le cattive pratiche o la cattiva progettazione per consentire l'utilizzo di campi ID di riferimento di terze parti nelle definizioni di oggetti pubblici per un'API?