Когда вы используете REST для создания новой записи с помощью POST, я вижу, что некоторые API, такие как Google's, указывают, что вы отправляете XML как часть запроса, в то время как другие указывают, что вы отправляете пары ключ/значение. Существует ли стандартная или лучшая практика для REST POST-s?REST post format
ответ
Это зависит от поставщика услуг REST.
Если услуга REST является адаптированием существующих html-HTML-форм, то ключ-ключ, как правило, легче начать с.
При публикации информации с JavaScript обычно проще использовать JSON.
XML часто используется, потому что людям это легко понять, и на каждом языке/платформе есть множество инструментов на каждом языке.
Любой формат представления, который работает, в порядке, при условии, что вы должны очень стараться использовать стандартные форматы, такие как Atom, где они существуют.
Update Вот relevant quote от Рой Филдинг (соавтор стандарта HTTP, и человека, который сочлененного покоиться в своей докторской диссертации). Как вам дизайн представления, используемое в вашем вебе-службе имеет решающее значение:
Отдыхает API должно потратить почти все его описательных усилий в определении типа носителя (ов), используемый для представляющих ресурсов [.. .]
обязательно прочитайте последующее на Q & A.
SOAP является стандартом для WebServices (я думаю, что вы немного запутались bewteen WebServices и REST).
Но это действительно зависит от разработчиков.
Вы можете объяснить, что случилось с этим постом ... –
«Web Services» теперь более общий термин, описывающий способы структурирования Web, так что это так удобно для программ просмотра и работать на нем, как для людей. SOAP - это набор стандартов W3C, которые имеют эту цель, и SOAP использует исключительно XML. REST - это не стандарт как таковой, а архитектурный стиль для структурирования веб-сервисов, который максимально использует HTTP и другие веб-стандарты. Richardson и Ruby * RESTful Web Services * (O'Reilly) - прекрасный ресурс для изучения подхода REST. –
Да ... но чисто «WebService» не означает, что это REST. REST - это нечто большее. Но этот парень действительно не хочет полного REST, он хочет только стандарт для WebServices. Отсюда мой ответ. –
Я предлагаю использовать то, что является самым простым, потому что это то, что является REST. Ниже приведен фрагмент кода, как я делаю сообщение. Я знаю, что вы не искали код специально, но API ниже (httpClient) отлично работает. Затем вы декодируете его, используя инструменты, которые мы всегда использовали кодировщиками (request.getParameter()
). Я считаю, что это то, что отличает REST от SOAP. Не мешайте! Использовать HTTP!
public void testHttpClient() {
PostMethod pMethod = null;
pMethod = new PostMethod("...url...");
NameValuePair[] data = {new NameValuePair("activeFlag", "yes"), new NameValuePair("custCode", "B010"), new NameValuePair("comments", "mark is cool")};
pMethod.setRequestBody(data);
this.makeCall(pMethod);
}
private String makeCall(HttpMethod method) {
String response = null;
HttpClient client = new HttpClient();
client.getParams().setAuthenticationPreemptive(true);
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(this.logon, this.pass));
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false));
method.getParams().setIntParameter(HttpMethodParams.SO_TIMEOUT, 5000);
try {
int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}
String aLine = null;
StringBuffer sb = new StringBuffer();
BufferedReader in = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));
while ((aLine = in.readLine()) != null) {
sb.append(aLine.trim());
System.out.println(aLine);
}
in.close();
response = sb.toString();
} catch (HttpException e) {
System.err.println("Fatal protocol violation: " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println("Fatal transport error: " + e.getMessage());
e.printStackTrace();
} finally {
method.releaseConnection();
}
return response;
}
- 1. Service REST format JSON Wordpress
- 2. REST Web-сервис JSON format
- 3. Jersey - Rest API (Json Format)
- 4. Paypal REST Api payment_term format
- 5. Джерси REST Service Output Format
- 6. Wordpress query exclude post format
- 7. Basic Angular POST Format Пояснение
- 8. Cakephp REST API удаляет необходимость .format
- 9. C# Json.NET WCF Rest DateTime Format
- 10. Wordpress: Post Format single-loop.php using get_template_part
- 11. REST post method трудность
- 12. WCF REST POST XML
- 13. Rest Api Post request
- 14. Быстрые потери REST POST?
- 15. Loopback REST connector POST
- 16. REST POST нет данных?
- 17. Soapui post rest service
- 18. WCF REST POST XML
- 19. Rest Шаблон (Post метод)
- 20. PHP post Rest API
- 21. Определить формат запроса REST POST/PUT
- 22. Laravel 5 Can not Receive/Read Json Format (POST METHOD)?
- 23. Rails Rest-Post Params hash не написано
- 24. Пользовательский фильтр Django rest для запроса POST
- 25. Как разобрать аргумент POST службе REST?
- 26. Узел Mongo REST Service Post
- 27. JQuery Post for Rest Services
- 28. REST приложение POST и перенаправление
- 29. WCF REST метод POST службы
- 30. POST to REST server php
XML проще понять, чем JSON? – Kevin