【问题标题】:Ember JsonApi with Jax-Rs content type on Posts帖子上带有 Jax-Rs 内容类型的 Ember JsonApi
【发布时间】:2017-05-08 09:56:35
【问题描述】:

我在客户端使用Ember-Data,在服务器上使用Tomee7Jax-RS

我非常想使用 Ember-Data 的 JsonAPIAdapter 并遵守 jsonAPI specifications

如果我理解正确,所有 HTTP 通信 must 都将 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 之外(使用 Postman)发出请求时,一切正常。

我了解@FormParam 需要Content-Type: application/x-www-form-urlencoded。我可以用别的吗?

不使用 JsonApiAdapter 会很遗憾。 :(

有没有人有什么我可以尝试的想法?

谢谢!

【问题讨论】:

    标签: ember.js ember-data json-api tomee-7


    【解决方案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})

    这对我们有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-06
      • 2014-09-12
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 2013-07-03
      • 1970-01-01
      相关资源
      最近更新 更多