对于一个后端来说,什么是RESTful API

不知道从什么时候开始,在招聘要求中出现这么一条:能够写出RESTful风格 API。

先看概念:

RSET即表述状态传递(Representational State Transfer)。表述性状态转移是一组织架构约束条件和原则。而满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意,是设计风格而不是标准。另外REST 通常使用 JSON 数据格式。

想想:当其他程序员看到你的Get字样的接口,就知道是获取数据的,Delete就是删除数据的。

以下为 REST 基本架构的四个方法:

  • GET - 用于获取数据。

  • PUT - 用于更新或添加数据。

  • DELETE - 用于删除数据。

  • POST - 用于添加数据。

另外,在后端的Controller中方法上加注释一般就会有GET、POST、DELETE等字样的注释。这样做,一是代码的可读性更好。另外一个原因就是类似权限或者请求的特殊处理,比如delete方法如果是删除数据的操作,当然要做重点关注,万一删除了不该删除的数据,那麻烦就大了。不是跑路能解决的。

一种好的编程习惯,应该成为一个优秀程序员的职业素养。

 

JAX-RS 是将在Java EE 6中引入的一 种新技术。JAX-RS即Java API for RESTful Web Services, 是一 个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构凤格创建Web服务。JAX-RS使用了Java SE 5引入的Java标注未简化Web服务的客户端和服务瑞的开发和部署。包括:
• @Path, 标注资原类或者方法的相对路径 。
• @GET 、 @PUT 、 @POST 、 @DELETE, 标注方法是HTTP请求的类型。
• @Produces, 标注返回的MIME媒体类型。
• @Consumes , 标注可接受请求的MIME媒体类型。
• @PathParam 、 @QueryPararn 、 @HeaderParam 、 @CookieParam 、 @MatrixParam 、@FormParam, 标注方法的参数未自HTTP请求的不同位置 , 例如 , @PathParam来自URL 的路径 , @QueryParam来自URL的查询参数 , @HeaderParam未自HTTP请求的头信息 , @CookieParam未自HTTP请求的Cookie。

设计 RESTful 风格 API 的 URL,通常需要考虑以下几个方面: 1. 遵循 URL 的命名规范:URL 命名应该简洁易懂,采用小写字母和短划线进行分隔。 2. 使用名词表示资源:RESTful API 设计中的 URL 应该是名词,而不是动词。例如,使用 `/users` 表示用户资源,而不是 `/get_users`。 3. 使用 HTTP 动词表示操作:RESTful API 设计中的 HTTP 方法应该表示所要执行的操作。例如,使用 HTTP GET 方法获取资源,使用 POST 方法创建资源,使用 PUT 方法更新资源,使用 DELETE 方法删除资源。 4. 使用路径参数和查询参数:使用路径参数表示资源的唯一标识符,使用查询参数表示对资源的筛选和排序操作。 下面以一个简单的例子说明如何设计 RESTful 风格 API 的 URL: 假设我们要设计一个博客网站的 API,其中包含文章和评论两个资源。文章可以被创建、查看、更新和删除,评论可以被创建和查看。 文章资源的 URL 设计如下: - 获取所有文章:`GET /articles` - 获取指定 ID 的文章:`GET /articles/:id` - 创建文章:`POST /articles` - 更新指定 ID 的文章:`PUT /articles/:id` - 删除指定 ID 的文章:`DELETE /articles/:id` 评论资源的 URL 设计如下: - 获取指定文章的所有评论:`GET /articles/:article_id/comments` - 创建评论:`POST /articles/:article_id/comments` - 获取指定 ID 的评论:`GET /articles/:article_id/comments/:id` 在上述例子中,使用了路径参数和查询参数来表示资源的唯一标识符和对资源的操作。同时,HTTP 方法也清晰地表示了对资源的操作类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值