Profile Server API
Endpoints

States

CRUD de estados (UFs) — dados geográficos de referência.

Unidades federativas (dados de referência). Identificadas pelo código IBGE do estado (stateCode). Base path: /api/states · autenticação de usuário.

MétodoRotaScopeResourceSucesso
POST/api/statescreateresource:states201
GET/api/statesreadresource:states200
GET/api/states/:stateCodereadresource:states_id200
PUT/api/states/:stateCodeupdateresource:states_id200
DELETE/api/states/:stateCodedeleteresource:states_id204

Criar estado

POST /api/states — a chave primária (stateCode) é informada no corpo, não gerada.

Corpo

CampoTipoObrigatórioRegras
stateCodeintegersimcódigo IBGE do estado; único (409)
ufstringsimexatamente 2 caracteres; único (409)
namestringsimmín. 1 caractere
latitudenumbersim
longitudenumbersim
regionstringsimmín. 1 caractere (ex.: Sudeste)
curl -X POST http://localhost:3000/api/states \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "stateCode": 35,
    "uf": "SP",
    "name": "São Paulo",
    "latitude": -23.5505,
    "longitude": -46.6333,
    "region": "Sudeste"
  }'

201 Created

{
  "stateCode": 35,
  "uf": "SP",
  "name": "São Paulo",
  "latitude": -23.5505,
  "longitude": -46.6333,
  "region": "Sudeste"
}

409 Conflict — já existe um estado com esse stateCode ou uf.


Listar estados

GET /api/states — lista paginada (page, limit), ordenada por nome.

Filtros opcionais: name (contém), uf, region.

curl "http://localhost:3000/api/states?region=Sudeste" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Obter estado por código

GET /api/states/:stateCode404 se não existir.


Editar estado

PUT /api/states/:stateCode — atualização parcial (o stateCode não muda).

CampoTipoRegras
ufstringexatamente 2 caracteres
namestringmín. 1 caractere
latitudenumber
longitudenumber
regionstringmín. 1 caractere

Retorna 200; 404 se não existir.


Remover estado

DELETE /api/states/:stateCode — retorna 204 No Content.