1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

REST - DBO

Discussão em 'TDN - Datasul' iniciado por fdantas, Maio 11, 2015.

  1. fdantas

    fdantas Administrator Moderador

    Page edited by Mauricio Rogerio Obenaus

    Preparação da DBO


    Para uma DBO ser acessível ao serviço REST, essa DBO deve estar preparada. Ela deve possuir os seguintes pré-processadores:


    &GLOBAL-DEFINE XMLReceiver YES
    &GLOBAL-DEFINE XMLProducer YES
    &GLOBAL-DEFINE DYNAMIC-QUERY-ENABLED YES


    Por outro lado, a BO não poderá possuir a definição do pré-processador CHANGE-QUERY-TO-FIND nem o valor “Main” no pré-processador CHANGE-QUERY-TO-FIND-PROCS, pois tal combinação impede que os dados da tabela sejam lidos e expostos pelo serviço REST.


    &GLOBAL-DEFINE CHANGE-QUERY-TO-FIND TRUE
    &GLOBAL-DEFINE CHANGE-QUERY-TO-FIND-PROCS Main

    Datasul REST - DBO - Liberação no serviço


    Para acessar uma DBO pelo serviço REST, a DBO deverá ser liberada no serviço (deploy)

    Datasul REST - DBO - URL


    Para acessar uma DBO pelo serviço REST a URL da DBO padrão é formada da seguinte dorma: /datasul-rest/resources/api/[caminho da dbo], onde, por exemplo se a DBO chamada for /adbo/boad107na.p fica /datasul-rest/resources/dbo/adbo/boad107na.

    Datasul REST - DBO - Metodos


    O serviço REST de DBO disponibiliza 5 maneiras de chamar a DBO para fazer as operações de CRUD, são as seguintes:

    MetodoURLMetodo HTTPObjetivo
    getAll/datasul-rest/resources/dbo/[caminho + nome da DBO]/GETRetorna os registros da DBO (Paginado)
    create/datasul-rest/resources/dbo/[caminho + nome da DBO]/POSTCria um novo registro usando a DBO
    get/datasul-rest/resources/dbo/[caminho + nome da DBO]/[chaves da tabela]GETBusca um registro da DBO pela chave da tabela
    update/datasul-rest/resources/dbo/[caminho + nome da DBO]/[chaves da tabela]PUTGrava um registro que ja existe na tabela
    delete/datasul-rest/resources/dbo/[caminho + nome da DBO]/[chaves da tabela]DELETERemove o registro da tabela com a DBO



    Metodo getAll


    O metodo get all suporta alguns paramtros de query que podem ser colocados na URL da chamada HTTP. são eles:

    parametroValorObjetivoValor DefaultExemplo
    limitInteiroLimita o resultado do GET para este numero de registros (tamanho da pagina)10limit=50
    startInteiroIndica o primeiro registro que deve ser carregado na lista (usado na paginação)1start=51
    fieldslista separada por virgulaIndica quais campos do registro deverão ser retornadosnenhumfields=codigo,descricao,texto
    whereStringconteudo utilizado para montar o WHERE da query (padrão progress)nenhumwhere=codigo eq "34" or texto <> ?
    orderlista separada por virgulaIndica os campos que deverão ser usados para ordenação da busca e do resultadonenhumorder=descricao,texto
    asclista separada por virgulaInidica se os campos da ordem deve ser ascendentes ou descendentesnenhumasc=true,false



    O retorno será um array JSON no atributo data do retorno.

    Metodo create


    O metodo create tem o objetivo de criar um registro na tabela da DBO, não ha parametros na URL para este metodo, apenas o registro da tabela deverá ser passado no payload da requisição HTTP.



    Metodo get


    O metodo get tem o objetivo de buscar um registro na tabela da DBO, para buscar um registro, deverá ser passada a chave do registro no caminho da URL da requisição HTTP, o retorno ira retornar um objeto JSON no atributo data do retorno.



    Por exemplo:

    A DBO adbo/boad107na da tabela estabelec, possui um campo chave "cod-estabel" a URL para acessar o estabelecimento com codigo "abc" fica assim:

    http://localhost:8080/datasul-rest/resources/dbo/adbo/boad107na/abc

    A DBO unbo/boun007na da tabela estado, possui dois campos na chave "pais" e "estado", para acessar o estado de SC do Brasil a URL fica assim:

    http://localhost:8080/datasul-rest/resources/dbo/unbo/boun007na/Brasil/SC



    Metodo udpate


    O metodo update possui a mesma URL do metodo get para localizar o registro da tabela, porem o metodo HTTP muda para PUT e o metodo recebe como payload um objeto JSON com o registro que deverá ser atualizado na tabela, onde cada atributo do objeto corresponde a um campo na tabela.



    Metodo delete


    O metodo delete possui a mesma URL do metodo get para localizar o registro da tabela, porem o metodo HTTP muda para DELETE, o metodo não recebe mais nenhum parametro, e o resultado desta chamada termina com o registro da tabela excluido.









    View Online · View Changes Online

    Continue reading...

Compartilhe esta Página