GUIA-04-QUANDO-USAR-RESOURCE-SURFACE-ACTION-CAPABILITY

Guia 04 - Quando usar Resource, Surface, Action e Capability

Objetivo

Este guia evita o erro mais comum na migracao do primeiro consumidor: misturar os papeis de resource, surface, action e capability.

Resource

Use resource-oriented quando a operacao e parte do contrato canonico do recurso.

Entram aqui:

Regra:

ResourceIntent

Use @ResourceIntent quando um PATCH continua sendo resource-oriented, mas com semantica propria.

Exemplo:

Regra:

UiSurface

Use @UiSurface quando a UI precisa descobrir semanticamente uma experiencia sobre uma operacao real.

Entram aqui:

Regra:

WorkflowAction

Use @WorkflowAction quando a operacao e um comando de negocio explicito.

Entram aqui:

Regra:

Capability

Use GET /{resource}/capabilities ou GET /{resource}/{id}/capabilities quando o cliente precisa de um snapshot agregado do que pode ser feito agora.

O snapshot agrega:

Regra:

Regra pratica de decisao

Pergunta 1: a operacao altera ou le o recurso como parte do contrato principal?

Pergunta 2: a operacao ainda e manutencao do recurso, mas parcial ou com UX propria?

Pergunta 3: a operacao e um comando de negocio explicito?

Pergunta 4: a UI so precisa saber o que existe ou o que esta disponivel agora?

Exemplos rapidos