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})
这对我们有用。
我在服务器上使用 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})
这对我们有用。