Histórico da Página
...
Caso o cliente queira expandir as propriedades ele DEVE então fazer uma requisição informando o parâmetro expand na url e passando como valor uma lista separada por , (virgula) dos campos exatamente como descritos no campo _expandables. Ex:.
Informações |
---|
Apenas o primeiro nível das propriedades deve ser expandido, ou seja, se o objeto expandido tiver propriedades expansíveis elas devem vir retraídas. |
Por exemplo, no cenário em que o cliente gostaria de expandir as comunidades da entidade usuário:
Bloco de código | ||
---|---|---|
| ||
POST https://fluig.totvs.com/api/users/10?expand=communities { _expandables: ["permissions", "detailedInformation"], id: 10, name: "Usuário", age: 25, permissions: [], communities: [{ name: "Vendas", photoUrl: "https://fluig.totvs.com/communities/1/photo" }, { namepermissions: {} }, { name: "Outra comunidade", photoUrl: "https://fluig.totvs.com/communities/2/photo", permissions: {} }], detailedInformation: {}, ... } |
...
Note que as propriedades do objeto expandido DEVEM vir retraídas por padrão. O cliente PODE solicitar que as propriedades dos objetos sejam expandidas separando as sub-propriedades com ponto (.). Usando o exemplo acima, o usuário gostaria de expandir as permissões das comunidades da entidade usuário:
Bloco de código | ||
---|---|---|
| ||
POST https://fluig.totvs.com/api/users/10?expand=communities.permissions
{
_expandables: ["permissions", "detailedInformation"],
id: 10,
name: "Usuário",
age: 25,
permissions: [],
communities: [{
name: "Vendas",
photoUrl: "https://fluig.totvs.com/communities/1/photo",
permissions: {
isAdmin: true,
canView: true
}
}, {
name: "Outra comunidade",
photoUrl: "https://fluig.totvs.com/communities/2/photo",
permissions: {
isAdmin: true,
canView: true
}
}],
detailedInformation: {},
...
} |
Versionamento
- API interna deve seguir esse padrão, mas é independe do versionamento. Deve estar documentado (tecnica) para as novas.
- Validar como passar a versão URL ou header. Testar com o Paulo.
Dicas de como implementar os métodos para tentar manter um padrão de implementação.
Documentação
- Tem que sair com swagger