相关疑难解决方法(0)

@PathParam和@QueryParam有什么区别

我是RESTful球衣的新手.我想问一下是什么之间的不同@PathParam,并@QueryParam在球衣?

rest jax-rs jersey

95
推荐指数
2
解决办法
5万
查看次数

何时使用pathParams或QueryParams

关于何时应该使用URL的路径参数而不是应该使用查询参数时,是否有经验法则?

说我有一个表发票与字段公司(PK),InvoiceNo(PK),Invoiceline,invoiceValue,noOfLines,salesPerson

我目前的想法是你的网址应该是这样的

/Invoice/
Run Code Online (Sandbox Code Playgroud)

哪个会显示所有发票

/Invoice/{company}
Run Code Online (Sandbox Code Playgroud)

这将显示公司的所有发票.

/Invoice/{company}/{InvoiceNo}
Run Code Online (Sandbox Code Playgroud)

显示特定发票和

/Invoice/{company}/{InvoiceNo}?invoiceLineNo=23
Run Code Online (Sandbox Code Playgroud)

仅显示第23行.

我想的方式是主键字段应该是路径的一部分,你要过滤的任何其他字段都是查询参数的一部分.

这听起来像是区分两者的合理方式吗?

java rest jax-rs

31
推荐指数
2
解决办法
2万
查看次数

RESTEasy和JAX-RS之间的区别

什么是Resteasy?RESTEasy和JAX-RS有什么区别?@PathParam和之间有什么区别@QueryParam

java jax-rs resteasy

13
推荐指数
3
解决办法
1万
查看次数

查询字符串与筛选条件的资源路径

背景

我有2个资源:coursesprofessors.

A course具有以下属性:

  • ID
  • 话题
  • semester_id
  • 部分
  • professor_id

A professor具有以下属性:

  • ID
  • 学院
  • SUPER_USER
  • 名字

所以,你可以说课程有一位教授,一位教授可能有很多课程.

如果我想获得所有课程或所有教授,我可以:GET /api/coursesGET /api/professors分别.


困惑

当我想要获得某位教授所教授的所有课程时,我的困境就来了.

我可以使用以下任何一种方法:

  • GET /api/professors/:prof_id/courses
  • GET /api/courses?professor_id=:prof_id

我不确定要使用哪个.


当前解决方案

目前,我正在使用后者的增强形式.我的理由是,如果我想添加过滤/排序标准,它更具可扩展性.

我实际上是在编码/嵌入JSON字符串到查询参数中.因此,(解码)示例可能是:

GET /api/courses?where={professor_id: "teacher45", year: 2016}&order={attr: "topic", sort: "asc"}
Run Code Online (Sandbox Code Playgroud)

上述请求将检索教授使用2016年提供的professor_id教授(或当前正在)教授的所有课程,按照主题标题按升序ASCII顺序排序.

我从来没有见过有人这样做过,所以我想知道我是不是做了些蠢事.


结束问题

是否有使用查询字符串与资源路径进行过滤条件的标准做法?过去做过什么更大的API?是否可以接受或鼓励同时使用两种范例(使两个端点都可用)?如果我确实应该使用第二种范式,除了编码JSON之外,还有更好的组织方法吗?有没有人在他们的查询字符串中看到使用JSON的另一个公共API?


编辑基于意见较少.(看评论)

api rest api-design http

6
推荐指数
1
解决办法
1564
查看次数

Jetty'{servlet}/{parameter}'网址路由

我正在使用jetty 9.0.3.

如何将URL(例如www.myweb.com/{servlet}/{parameter})映射到给定的servlet和参数?

例如,URL"/ client/12312"将路由到clientServlet,其doGet方法将接收12312作为参数.

java url routing dictionary jetty

4
推荐指数
1
解决办法
1万
查看次数

REST API,何时使用@PathParam,@ QueryParam,@ RequestBody和/或@RequestHeader

如果在何时/何时不使用上述将信息传递给REST调用的方法,我一直试图找到答案.

我一直在寻找各地,但每个帖子只讨论两种列出的方法之间的差异,或3,而不是所有4.

java rest spring restful-architecture spring-boot

2
推荐指数
1
解决办法
4156
查看次数