如何通过"getJSON"访问 RESTful 服务的"findById"方法?



这是我的 RESTful 服务类的以下代码:

@RequestScoped
@Path("/empresas")
public class EmpresaEndpoint {
    @Inject
    private EmpresaRB empresaRB;
    @GET
    @Path("/{id:[0-9][0-9]*}")
    @Produces("application/json")
    public Response findById(@PathParam("id") final Long id) {
        //TODO: retrieve the empresas
        Empresa empresas = null;
        if (empresas == null) {
            return Response.status(Status.NOT_FOUND).build();
        }
        return Response.ok(empresas).build();
    }
    @GET
    @Produces("application/json")
    public List<Empresa> listAll(
            @QueryParam("start") final Integer startPosition,
            @QueryParam("max") final Integer maxResult) {
        //TODO: retrieve the empresa
        return empresaRB.getEmpresas();
    }
}

如果我想通过jQuery访问存储在"Empresa"上的所有数据,我会这样做:

$.getJSON( "rest/empresas", function( data ) {
  //whatever is needed.
}

上面的代码将访问"listAll"方法。那么如何访问"findById"方法并传递必要的参数呢?

假设你有一个名为empresaId的变量来保存实体的id,这应该可以工作。

$.getJSON( "rest/empresas/" + empresaId, function(data) { 
  // Whatever is required here    
}

好吧,在没有使用该特定框架的情况下,它看起来正在根据路径映射到正确的方法 - 如果路径具有 ID,它将使用 findById,例如

$.getJSON("rest/empresas/100", function(data) {
  // ...
}

(这将找到ID为100的项目......显然替换了您要查找的项目的ID。我们不知道这是从哪里来的,但"rest/empresas/" + id很可能就是你所需要的。

在我的初始代码中,没有查询连接到方法findById()上的变量"empresa"。

我在存储库类上创建了一个查询并将其分配给变量。问题解决了。

谢谢大家借出的时间。

最新更新