Tomando emprestado do padrão RESTful, para enviar um INSERT para o banco de dados com o protocolo OData é preciso formatar uma mensagem com METHOD POST e enviar no BODY da mensagem o JSON correspondente aos dados das colunas a serem inseridas no banco de dados.

 

POST_Cliente

 

No exemplo, o METHOD POST enviou uma linha contendo o registro a persistir no banco de dados. Como a repetição de envios de comandos ao servidor pode se tornar de alto custo, dado ao uso de conectividade de baixa velocidade ou instável – o recomendado é enviar um pacote de dados juntos para que sejam executados no servidor. Para isto, o servidor MVCBrServer prevê a possibilidade de receber um   ARRAY JSON com uma lista de registros a serem inseridos.

Sendo assim, é possível enviar um pacote de dados no seguinte formado:

URL-POST: http://localhost:8080/OData/OData.svc/clientes

[
{"codigo":9999997,
"nome":"Jose da Silva",
"fone":"055-111-12312",
"cidade":"São Paulo"
},

{"codigo":9999998,
"nome":"Jose da Silva8",
"fone":"055-111-12312",
"cidade":"São Paulo"
},

{"codigo":9999999,
"nome":"Jose da Silva9",
"fone":"055-111-12312",
"cidade":"São Paulo"
}
]

Codigo GIT MVCBr

Primeira Parte

FB

 

O que é OData?

É uma especificação para consumir recursos de banco de dados em servidores que implementam RESTful. A solicitação de operação no banco de dados é enviada para o servidor em uma URL e retorna o resultado da consulta do banco de dados.

Através dos métodos de comunicação com o servidor RESTful é estabelecido o tipo de operação a ser executado:

  • GET – Solicita que retorne um conjunto de dados do banco de dados;
  • POST – Envia um INSERT para o banco de dados;
  • PUT – Envia um UDPATE  para o banco de dados – no OData é necessário enviar todas as colunas;
  • PATCH – Envia um UPDATE  parcial – não precisa mandar todas as colunas;
  • DELETE – apaga um registro no banco de dados;

Exemplo de GET:

  1. http://servidor:8080/OData/OData.svc/produtos(1) – Executa uma busca nos registro de produtos e retornar o produto 1;
  2. http://servidor:8080/OData/OData.svc/produtos(1)/clientes – retorna os clientes que compraram o produto;
  3. http://servidor:8080/OData/OData.svc/produtos(1)/clientes(estado=’SP’) – retorna os clientes que compraram o produto 1 e que estão no estado SP;
  4. http://servidor:8080/OData/OData.svc/produtos?$top=10 – retorna os 10 primeiro itens da tabela/coleção produtos;
  5. http://servidor:8080/OData/OData.svc/produtos?$top=10&$skip=20 – salta os 20 primeiros registros e retornar se próximos 10 produtos;
  6. http://servidor:8080/OData/OData.svc/produtos?$select=codigo,nome,unidade – retorna as colunas codigo,nome,undiade;
  7. http://servidor:8080/OData/OData.svc/produtos?$filter=unidade eq ‘KG’ -> retorna os produto que a unidade seja igual a KG;

Notações de filtro:

  • eq – equal        =
  • lt – less than   <
  • le – less equal   <=
  • ne – not equal   <>
  • gt  – great than  >
  • ge  – great equal >=

 

Ver especificação em:   OData.org