Это протокол REST? - PullRequest
       2

Это протокол REST?

0 голосов
/ 17 марта 2012

Я использовал этот код в своем приложении для Android:

import org.apache.http.client.methods.HttpPost;
...
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://myServerAddress");
httppost.setEntity(new UrlEncodedFormEntity(myArrayList));
HttpResponse response = httpclient.execute(httppost);

Правильно ли говорить, что этот код использует протокол REST?

--- редактировать ---

(на стороне сервера я использовал скрипт, который возвращает объект JSON)

Ответы [ 4 ]

4 голосов
/ 17 марта 2012

REST - это серверная архитектура. Из этого клиентского кода невозможно определить, имеет ли сервер такую ​​архитектуру API. "Может быть".

1 голос
/ 22 мая 2012

Строго говоря, REST не является ни протоколом, ни архитектурой, а архитектурным «стилем» (определенным способом создания архитектуры или части архитектуры). Это довольно часто встречается для архитектуры, которая подтверждает стиль REST длябыть отнесенным к RESTful

Прагматично говоря REST использует протокол HTTP для создания, чтения, обновления и удаления (CRUD) ресурсов, которые могут быть адресованы по URL, с использованием HTTP POST (создание), HTTP GET (чтение), HTTP PUT (обновление) и HTTP DELETE (удаление).

Теоретически, REST означает передачу состояния представления, в которой «представление» относится к представлению ресурса (содержимое запроса на получение или публикацию илиответ), который отправляется или принимается в запросе (HTTP), а также тот факт, что, выполняя запрос, вы «передаете» «состояние» ресурса от клиента к серверу или наоборот.

Помимо основных критериев уникальности адреса ресурса по URL-адресу и использования HTTP-глаголов (POST, PUT ... и т. Д.) Для CRUD, существуют и другие аспекты REST, такие как переходыв идеале состояния должны встречаться только по ссылкам, указанным в ресурсе, ресурс должен быть связан на основе типов отношений ссылок и т. д., но это может стать немного религиозным довольно быстро: -)

Я бы соблазнилсявызвать Archticture RESTful, если у него есть ресурсы, правильно адресуемые URL-адресами и если он использует POST, GET, PUT и DELETE для CRUD ...

Надеюсь, это поможет ...

0 голосов
/ 18 марта 2012

Ваш фрагмент кода показывает, что вы используете протокол HTTP, а не REST. REST - это проектный подход, а не протокол.

Это означает, что вы делаете POST для REST-сервера. Поскольку это POST, значения, которые вы публикуете, должны быть в теле запроса. Итак, первый вопрос: какой формат используется вашим сервером REST для обмена данными? JSON, XML? Некоторые другие форматы?

Я предполагаю, что это JSON. Второй вопрос: ваш httpclient может отправлять контент в формате JSON?

Классический пример ОТДЫХА ОТДЫХА POST для "http://myServerAddress/car" с JSON в теле запроса {" brand ":" ford "," model ":" mustang "}

Вы можете использовать плагин firefox, например RESTClient для firefox, чтобы попытаться вручную выполнить запрос POST на вашем сервере. После завершения кода Android будет легче.

0 голосов
/ 17 марта 2012

Использование REST для реализации API веб-сервисов означает, что вы обращаетесь к ним через URL, как будто «вы загружали веб-страницу». Это означает, что очень легко взаимодействовать с такого рода WS, потому что вам не нужно иметь дело со сложностью SOAP, в которой вы должны объявить WSDL и, следовательно, один на стороне сервера ...

В заключение, у вас есть код, который на самом деле делает POST для некоторого URL. Это будет зависеть от того, что на самом деле делает этот URL-доступ. Это очень распространенный подход для возврата XML или JSON из WS, поэтому вы можете быть почти уверены, что получаете доступ к спокойному WS.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...