Páginas filhas
  • Guia de implementacao das APIs TOTVS

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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
languagejs
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
languagejs
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