Usuário com melhor resposta
WebService - JSON

Pergunta
-
Pessoal, sou meio cru em relação a JSON e acabei pegando uma bucha aqui na empresa e não sei como resolver, vamos lá.
Eu preciso passar algumas informações para um WebService
Aqui é a documentação que tenho que a empresa me mandou
Rest API JáTá Chegando - Documentação Inicial
Métodos HTTP:
GET - Request dos dados de um registro
POST - Adição de um novo registro
PUT - Atualização de um registro existente
DELETE - Remoção de registro existente
API Endpoint:
http://beta.jatachegando.com/api/company/v0.1/*
Actions:
customer - Clientes
address - Endereços
courier - Entregadores
order - Pedidos
Action's Parameters:
customer - código de área (phone_area), telefone (phone_number), nome (name), cpf (cpf), data de nascimento (birthday), sexo (sex), email (email)
address - id cliente (id_customer), logradouro (address), número (address_number), id tipo endereço (address_type), complemento (complement), bairro (neighborhood), cep (zip_code), descrição (alias), ponto de referência (landmark), id cidade (id_city)
courier - id empresa (id_company), nome (name), apelido (nickname), código de área (phone_area), telefone (phone_number), id meio de transporte (id_vehicle)
order - id empresa (id_company), descrição (description), id cliente (id_customer), id endereço (id_address)
* Itens em itálico são opcionais
Exemplos de requisição:
HTTP POST
http://beta.jatachegando.com/api/company/v0.1/customer?access_token=[TOKEN]
{"customer":{"phone_area":"19","phone_number":"777777777","name":"Teste Teste Com Api","cpf":"","birthday":"","sex":"0","email":""}}
HTTP POST
http://beta.jatachegando.com/api/company/v0.1/address?access_token=[TOKEN]
{"address":{"id_customer": "3", "address":"RUA PALMEIRA SEAFÓRSIA","address_number":"1001","address_type":"1","complement":"","neighborhood":"JARDIM IRMÃOS SIGRIST","zip_code":"13.053-000","alias":"","landmark":"","id_city":"4814"}}
HTTP POST
http://beta.jatachegando.com/api/company/v0.1/courier?access_token=[TOKEN]
{"courier":{"id_company": "2", "name":"TESTE COM API","nickname":"COM API","phone_area":"19","phone_number":"79558855","id_vehicle":"1"}}
HTTP POST
http://beta.jatachegando.com/api/company/v0.1/order?access_token=[TOKEN]
{"order":{"id_company": "2", "description": "Testex", "id_customer": "3", "id_address": "2"}}string url = "http://beta.jatachegando.com/api/company/v0.1/customer/1?access_token=YzAxZWVlYWNkYmFmNWI0ZmMzM2RhZmIwMmE2ZmRlZTMxYTliZDY1MjQ0ZWJmNTkxMjkyY2I5N2ZhMWFkZjFkZjUwNmNkNjUzYWFmMmViODgzZTM0NWM5OTY1YmY4ODNiMjI2Mjg4ZWQ0NTAzNjZmNzdiM2MzODAwY2RiZGQ4MmI="; string result = ""; string json = "{\"order\":{\"id_company\": \"14\", \"description\": \"Testex\", \"id_customer\": \"3\", \"id_address\": \"2\"}}"; using (var client = new WebClient()) { client.Headers[HttpRequestHeader.ContentType] = "application/json"; result = client.UploadString(url, "POST", json); }
Só que o result esta me retornando isso:
{"response":{"error":{"error_code":"400","error_type":"BadInputException","error_message":"Bad parameters in this request (you can't use POST with an ID)"}}}
O projeto é desktop.
Onde estou errando?
Respostas
-
Se você quer cadastrar um customer, tente o código abaixo:
string url = "http://beta.jatachegando.com/api/company/v0.1/customer?access_token=YzAxZWVlYWNkYmFmNWI0ZmMzM2RhZmIwMmE2ZmRlZTMxYTliZDY1MjQ0ZWJmNTkxMjkyY2I5N2ZhMWFkZjFkZjUwNmNkNjUzYWFmMmViODgzZTM0NWM5OTY1YmY4ODNiMjI2Mjg4ZWQ0NTAzNjZmNzdiM2MzODAwY2RiZGQ4MmI="; string result = ""; string json = "{\"customer\":{\"phone_area\":\"19\",\"phone_number\":\"777777777\",\"name\":\"Teste Teste Com Api\",\"cpf\":\"\",\"birthday\":\"\",\"sex\":\"0\",\"email\":\"\"}}"; using (var client = new WebClient()) { client.Headers[HttpRequestHeader.ContentType] = "application/json"; result = client.UploadString(url, "POST", json); }
Você deve se atentar aos seguintes pontos:
1) Faça um POST para a URL api/company/v0.1/customer (sem o /1 no final, que indicaria uma atualização do customer com id 1)
2) Envie o JSON que representa um customer, como está na documentação ({"customer":{"phone_area"...). Você está enviando o JSON de order
- Marcado como Resposta Pandox terça-feira, 1 de setembro de 2015 18:51
Todas as Respostas
-
-
Obrigado pela resposta Edney
Fiz o teste e não consegui
tentei de varias formas
string json = "{\"order\":{\"id_company\": \"14\", \"description\": \"Testex\", \"id_customer\": \"\", \"id_address\": \"2\"}}";
string json = "{\"order\":{\"id_company\": \"14\", \"description\": \"Testex\", \"id_customer\": \", \"id_address\": \"2\"}}";
e até sem o customer
string json = "{\"order\":{\"id_company\": \"14\", \"description\": \"Testex\", \"id_address\": \"2\"}}";
e estou tento o mesmo erro
-
Se você quer cadastrar um customer, tente o código abaixo:
string url = "http://beta.jatachegando.com/api/company/v0.1/customer?access_token=YzAxZWVlYWNkYmFmNWI0ZmMzM2RhZmIwMmE2ZmRlZTMxYTliZDY1MjQ0ZWJmNTkxMjkyY2I5N2ZhMWFkZjFkZjUwNmNkNjUzYWFmMmViODgzZTM0NWM5OTY1YmY4ODNiMjI2Mjg4ZWQ0NTAzNjZmNzdiM2MzODAwY2RiZGQ4MmI="; string result = ""; string json = "{\"customer\":{\"phone_area\":\"19\",\"phone_number\":\"777777777\",\"name\":\"Teste Teste Com Api\",\"cpf\":\"\",\"birthday\":\"\",\"sex\":\"0\",\"email\":\"\"}}"; using (var client = new WebClient()) { client.Headers[HttpRequestHeader.ContentType] = "application/json"; result = client.UploadString(url, "POST", json); }
Você deve se atentar aos seguintes pontos:
1) Faça um POST para a URL api/company/v0.1/customer (sem o /1 no final, que indicaria uma atualização do customer com id 1)
2) Envie o JSON que representa um customer, como está na documentação ({"customer":{"phone_area"...). Você está enviando o JSON de order
- Marcado como Resposta Pandox terça-feira, 1 de setembro de 2015 18:51
-
-
-