Padrões CRM SaaS
Banco de dados
Â
APIs
Todo microsserviço tem o sufixo “-crm”. Exemplo: cadastros-crm, oauth-crm
Â
Requisições para buscar metadados (Os metadadados tem como objetivo apresentar algumas informações sobre a entidade. Como, por exemplo, quais campos são necessários para cadastro da entidade, quais deles são obrigatórios, quais são filtráveis, quais seus tipos e quantidade de caracteres máximo:
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo/metadados
Tipo de requisição: GET.
Â
Requisições para buscar todos os registros:
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo/todos
Tipo de requisição: GET.
Â
Requisições para buscar os registros por id:
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo?id=1
Tipo de requisição: GET.
Â
Requisições para pesquisar registros. Essa requisição foi feita para buscas personalizadas, onde o usuário deseja filtrar por um campo especĂfico, realizar uma ordenação e fazer consultas paginadas.
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo/pesquisa
Tipo de requisição: POST.
Exemplo de corpo da requisição:
{
    "pagina": 1,
    "quantidadeRegistros": 10
}{
"pagina": 1,
"quantidadeRegistros": 10,
"ordenacao": [
{
"campo": "codigo",
"ordenacao": "ASC"
}
],
"filtros": [
{
"campo": "descricao",
"comparacao": "CONTEM",
"valor": "e"
}
]
}
Â
Requisições para salvar registros
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo
Tipo de requisição: POST.
Exemplo de corpo da requisição:
{
        "codigo": "103",
        "descricao": "centro de custo 103",
        "centro_custo_pai": 22,
        "aceita_lancamento": "S",
        "codigo_externo": null
}
Â
Requisições para atualizar registros. Essa atualização será total, envolvendo todos os campos do registro.
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo?id=1
Tipo de requisição: PUT.
Exemplo de corpo da requisição:
{
        "codigo": "102",
        "descricao": "centro de custo 102",
        "centro_custo_pai": 2,
        "aceita_lancamento": "S",
        "codigo_externo": "10"
}
Â
Requisições para atualizar registros parcialmente. Essa atualização será parcial, atualizando apenas os campos enviados no corpo da requisição.
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo?id=1
Tipo de requisição: PATCH.
Exemplo de corpo da requisição:
Requisições para deletar registros
Exemplo requisição: {{url}}:{{porta_cadastros}}/cadastros-crm/centro-de-custo?id=1
Tipo de requisição: DELETE.
Â
Padrões de código
Â
VersĂŁo do JAVA utilizada atualmente nos projetos: 15.
Link para o repositĂłrio do NEXUS:https://repository.viasoftcloud.com.br/
Arquitetura dos pacotes:
features: Armazena o código das implementações do projeto.
Exemplo de feature:
nomedafeature
controller
dto
entity
repository
service
shared: Armazena o código compartilhado entre implementações.
Sempre colocar a anotação @Protected em novas features com o grau de autenticação necessário para acesso dos endpoints.