Sto sviluppando un'API che consente ai consumatori di creare una risorsa. Ad esempio, una risorsa "utente" può un po ' essere creata tramite POST e questo payload (cercando di utilizzare JSON API , btw):
POST /users HTTP/1.1
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "users",
"attributes": {
"first_name": "John",
"last_name": "Doe"
}
}
}
Dico un po ' creato perché la risorsa viene effettivamente creata su un sistema esterno (e la mia API funge da proxy).
Per completamente creare la risorsa, la mia API deve fare il secondo passo - e questo passaggio si basa su informazioni a cui la mia API non ha accesso. Il consumatore dell'API riceverà, in un secondo momento, queste informazioni aggiuntive (ad esempio tramite un SMS). L'utente dell'API deve quindi chiamare di nuovo la mia API con queste informazioni aggiuntive per completare il secondo passaggio della creazione della risorsa.
Come dovrebbe apparire questa chiamata secondaria alla mia API? Sarebbe comunque un POST a /users
, giusto? Forse basta sostituire attributes
con le informazioni aggiuntive (ad esempio "sms_key": "SHy562NSkd"
)?
POST /users HTTP/1.1
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "users",
"attributes": {
"sms_key": "SHy562NSkd"
}
}
}
Si noti che l'API può eseguire completamente questo passaggio secondario senza alcuna conoscenza del primo passaggio, ma l'API ha un modo per sposare il secondo passo con il primo passaggio (potrebbe essere utile per restituire i risultati relativi alla risorsa creata).