Ember JsonApi с типом контента Jax-Rs в сообщениях

Я использую Ember-Data на стороне клиента и Tomee7 с Jax-RS на сервере.

Я бы очень хотел использовать JsonAPIAdapter Ember-Data и придерживаться спецификаций jsonAPI.

Если я правильно понимаю, все HTTP-соединения должны иметь заголовок Content-Type равным application/vnd.api+json

Проблема, когда я пытаюсь отправить что-то на сервер, я получаю ошибку 415 Unsupported Media.

Я украсил свои услуги следующим образом:

@POST
@Consumes("application/vnd.api+json")
@Path("somePostEndPoint")
public Response postService (@FormParam "someData" String someData) {
        //....
}

но я вернулся:

Ожидается запрос формы application/x-www-form-urlencoded, но тип носителя запроса — application/vnd.api+json. Рассмотрите возможность удаления аннотаций @FormParam

Когда я делаю запрос вне EmberData (с почтальоном), все работает нормально.

Я понимаю, что @FormParam требует Content-Type: application/x-www-form-urlencoded. Могу ли я использовать что-то еще?

Было бы обидно не использовать JsonApiAdapter. :(

есть ли у кого-нибудь идеи, что я мог бы попробовать?

Спасибо!


person localyost    schedule 22.12.2016    source источник


Ответы (1)


Хорошо, мой коллега понял это:

@Path("somePostEndPoint")
    @POST
    @Produces(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})
    @Consumes(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})

    public Response postService (String someData) {
      //...
    }
  • Не используйте @FormParam, просто установите строку. @FormParam требуется Content-Type: application/x-www-form-urlencoded

  • использовать @Consumes(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})

это сработало для нас.

person localyost    schedule 23.12.2016