Поиск по этому блогу

Показаны сообщения с ярлыком REST. Показать все сообщения
Показаны сообщения с ярлыком REST. Показать все сообщения

понедельник, 2 декабря 2013 г.

jQuery Post Request with $.ajax

Как передать JSON на сервер с помощью jQuery. Для этого нам понадобится отправить на сервер POST-запрос и прикрепить к нему нужный нам JSON. Допустим надо отправить на сервер JSON следующего вида {"userEmail": "xxx@xx.xx", "password":"xxxx"}. Для этого нам понадобится метод jQuery $.ajax().
1. Указываем тип запроса type: "POST"
2. Указываем тип пересылаемых и принимаемых данных 
accept: "application/json",
contentType:"application/json",
dataType:"json",
3. Формируем JSON, который будем отправлять
data:JSON.stringify({ "userEmail": "xxx@xx.xx", "password":"xxxxxx" })

Клиентская часть на jQuery
$.ajax(
  {
    type: "POST",
    accept: "application/json",
    contentType:"application/json",
    dataType:"json",
    data:JSON.stringify({ "userEmail": "xxx@xx.xx", "password":"xxxxxx" }),
    url:"http://someservice/rest/users/authorize",
    success: function(response) {
    },
    error: function() {
      alert("LOGIN FAIL");
    }
  }
);

Серверная часть на Java
@Path("/users")
public class UserResource extends AbstractCrudResource<User> {
 
  private UserManager manager = UserManager.getInstance();
 
  private UserDao userDao = UserDao.getInstance();
 
  @POST
  @Produces(MediaType.APPLICATION_JSON)
  @Path("/authorize")
  public Response authorize(@Context HttpServletRequest request, 
    UserDTO userDTO) {
    if (userDTO.getUserEmail() != null) {
      User user = manager.retrieveUserByEmail(userDTO.getUserEmail());
      if (user != null) {
        if (user.getPassword().equals(
          userDao.getPasswordMD5Hash(userDTO.getPassword()))) {
 
          ...
 
        }
      }
    }
  }
}

Модель данных JSON которой пересылается 
public class UserDTO {
 
  private Long id;
 
  private String password;
 
  private String userEmail;
 
}

пятница, 15 марта 2013 г.

GWT RequestBuilder

В GWT есть инструмент для отправки запросов на серевер - это RequestBuilder. При помощи RequestBuilder'а мы можем отправлять REST-запросы на сервер. Работать с RequestBuilder очень просто. Для того чтобы создать объект  RequestBuilder,  необходимо вызвать конструктор с двумя параметрами.
RequestBuilder requestBuilder = new RequestBuilder(httpMethod, url);
httpMethod - метод, который используется запросом при обращении к серверу
url -адрес, по которому отправляется запрос.

Запрос, отправляемый на сервер может быть отправлен при помощи следующих методов

RequestBuilder.POST - добавление данных
RequestBuilder.GET - получение данных
RequestBuilder.PUT - изменение данных
RequestBuilder.DELETE - удаление данных

пятница, 8 марта 2013 г.

Как подключить сервис отправки SMS сообщений на Java. Написание REST-запросов с помощью HttpsURLConnection, Apache Http Client и использование URLFetchService на Google App Engine

В работе над проектом очередным заданием было реализовать отправку смс сообщений на телефоны клиентов. Найти сервис для отправки смс сообщений было первой задачей. Был выбран сервис https://www.twilio.com/ В статье я раскажу о нескольких вариантах реализации взаимодействия с сервисом для отправки сообщений.

Для реализации взаимодействия с сервисом можно использовать следующие методы
1. HttpsURLConnection
2. Apache Http Client
3. URLFetchService
Сервис отправки смс-сообщений Twilio предоставляет REST API для взаимодействия.

https://www.twilio.com/sms/api

Это REST API кстати предоставлено для многих языков программирования. Также сущестуют разработанные и прдоставляемые сервисом Twilio библиотеки для разных языков программирования. Так что, задача отправки sms-сообщений может решаться совсем легко, достаточно подулючить библиотеку и отправлять запросы. Для начала работы с сервисом и получения триал аккаунта для проведения экспериментов нужно естественно зарегистрироваться.  Триал аккаунт позволит отправлять смс на свой номер. На сайте в личном кабинете можно посмотреть свои AccountSid и AuthToken. 

REST API для взаимодействия с сервисом Twilio

curl -X POST https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/SMS/Messages \ 
--data-urlencode "To=+14155551212" \ 
--data-urlencode "From=+14158675309" \ 
--data-urlencode "Body=Hello world" \ 
-u {AccountSid}:{AuthToken}

Как взаимодействовать с сервисом, используя библиотеки предоставляемые сами Twilio, можно на сайте сервиса. В этой статье я расскажу о методах взаимодействия с сервисом без использования этих библиотек. Одна их причин - такие библиотеки не работают на Google App Engine (на нем не работает так же Apache Http Client).

понедельник, 21 января 2013 г.

REST. Разница между @QueryParam и @PathParam


При использовании JAX-RS при написании REST методов для обработки пользовательских запросов встает вопрос, как лучше передавать параметры запроса на сервер. Для этого существуют различные способы, о двух из которых тут пойдет речь. Параметры можно передавать используя @PathParam или @QueryParam. В чем разница при передаче параметров с  использованием @PathParam и @QueryParam я хочу рассказать в этой статье.