Ember 具有 Jax-Rs 帖子内容类型的 JsonApi

Ember JsonApi with Jax-Rs content type on Posts

我在服务器上使用 Ember-Data 客户端和 Tomee7 以及 Jax-RS

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

如果我理解正确,所有 HTTP 通信 must 都将 Content-Type header 设置为 application/vnd.api+json

当我尝试向服务器 POST 发送某些内容时出现 415 Unsupported Media 错误

我这样装饰我的服务:

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

但我回来了:

An application/x-www-form-urlencoded form request is expected but the request media type is application/vnd.api+json. Consider removing @FormParam annotations

当我在 EmberData 之外发出请求时(使用 Postman)一切正常。

我了解@FormParam 需要 Content-Type: application/x-www-form-urlencoded。我可以使用其他东西吗?

不使用 JsonApiAdapter 将是一种耻辱。 :(

有人知道我可以尝试什么吗?

谢谢!

好的,我的一位同事想通了:

@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,只设置一个String。 @FormParam 需要 Content-Type: application/x-www-form-urlencoded

  • 使用@Consumes(value={"application/vnd.api+json",MediaType.APPLICATION_JSON})

这对我们有用。