restful java 例子(RestFul接口设计,手把手带你学会)java教程 / Java Web开发中的RESTful API设计与实践...

wufei123 发布于 2024-06-04 阅读(18)

一、接口编程随着互联网的发展,尤其是移动互联网为代表的Web3.0时代,客户端层出不穷,以APP、微信、PC浏览器为代表,服务端业务逻辑基本一致的,那么有没有一种方式可以做到“服务端一次编写,客户端随时接入”呢

流行的方案就是“接口编程”2、接口编程API(Application Programming Interface,应用程序编程接口),程序之间交互数据的一种方式以浏览器和服务器之间的数据交互(ajax请求)为例:。

请求方式:get方式 post方式请求协议:http协议 https协议返回参数:普通字符串、json格式、xml格式,现在通用的是json格式二、RESTFul设计风格1、Rest与RestFulREST(英文:Representational State Transfer,简称REST),表述性状态转移,指的是一组架构原则。

Restful:遵守了rest原则的web服务或web应用2、API设计六要素资源路径(URI)、HTTP动词(Mrthod)、过滤信息(query-string)、状态码(Status-code)、错误信息(Error)、返回结果(Result)。

1、资源路径URI资源:所有在服务器保存的数据(如:音乐/视频/文章/个人信息)都是服务器资源URI(Uniform Resource Identifier)/统一资源标志符,包括URL和URNURL(Uniform Resource Locator):统一资源定位符。

URN(Uniform Resource Name):统一资源命名在HTTP协议中,URI的组成如下Schema://host[:port]/path[?query-string]Schema:使用的协议类型,如http/https/ftp等

host:主机域名或IPport:端口号(可选)path:路径query-string:查询参数(可选)2、HTTP动词(请求方式)对于资源,一般有四个操作,CURD(增、删、改、查)GET:从服务器获取资源(一项或多项)

POST:在服务器新建一个资源PUT:在服务器更新资源,服务器返回完整的属性DELETE:从服务器删除资源3、过滤信息通常也叫做请求参数或查询字符串4、响应状态码服务端返回的信息,用来告诉客户端操作结果

常见状态码:状态码含义说明200OK操作成功,并返回数据201CREATED新建成功204No CONTENT删除成功400BAD REQUEST请求语法错误403Forbidden请求没有权限的资源404

NOT FOUND没有找到请求的资源GET200(ok)-表示已在响应中发出204(无内容)-资源有空表示301(Moved Permanently)-资源的URI已被更新303 (See Other)-其他(如,负载均衡)

304 (not Modified)-资源未更改(缓存)400 (bad request)-指代坏请求(如,参数错误)404 (not found)-资源不存在406(not acceptable)-服务端不支持所需展示

500 (internal server error) -通用错误响应503 (Service Unavaifable) -服务端当前无法处理请求POST200(ok)-如果现有资源已被更改201(created)-如果新资源被创建

202 ( accepted)-已接受处理请求但尚未完成(异步处理)301(Moved Permanently)-资源的URI被更新303 (See Other)-其他(如,负载均衡)400 (bad request)-指代坏请求(如,参数错误)

404 (not found)-资源不存在406(not acceptable)-服务端不支持所需展示409(conflict)-通用冲突412 (Precondition Failed)-前置条件失败(如执行条件更新时的冲突)

415(unsupported media type)-接收到的表示不受支持500 (internal server error) -通用错误响应503 (Service Unavaifable) -服务端当前无法处理请求

PUT200(ok)-如果现有资源已被更改201(created)-如果新资源被创建301(Moved Permanently)-资源的URI被更新303 (See Other)-其他(如,负载均衡)400 (bad request)-指代坏请求(如,参数错误)

404 (not found)-资源不存在406(not acceptable)-服务端不支持所需展示409(conflict)-通用冲突412 (Precondition Failed)-前置条件失败(如执行条件更新时的冲突)

415(unsupported media type)-接收到的表示不受支持500 (internal server error) -通用错误响应503 (Service Unavaifable) -服务端当前无法处理请求

DELETE200(ok)-资源已被删除301(Moved Permanently)-资源的URI被更新303 (See Other)-其他(如,负载均衡)400 (bad request)-指代坏请求(如,参数错误)

404 (not found)-资源不存在409(conflict)-通用冲突500 (internal server error) -通用错误响应503 (Service Unavaifable) -服务端当前无法处理请求

5、错误信息如果状态码是4xx或者5xx,需要告诉客户端对应的错误信息,通常以json格式返回:{“error”:“错误信息”;}6、返回结果针对不同的操作,服务端需要返回的结果应该符合这样的规范GET/collections–返回资源列表(数组)

GET/collections/:id --返回单个资源 eg./collections/1POST/collections --返回新的资源PUT/collections/:id --返回资源的完整属性

DELETE/collections/:id --返回204状态码+空文档3、RestFul接口设计风格RESTFul是一种软件设计风格,主要用于有客户端与服务端交互的软件RESTFul是目前最流行的API设计规范,用于web数据接口的设计

RESTFul风格的数据接口示例:以新闻资源为例:URI及HTTP动词设计如下HTTP动词URI路径说明GEThttp://域名/news获取列表数据GEThttp://域名/news/:id根据id获取一条数据

POSThttp://域名/news添加一条数据PUThttp://域名/news/:id根据id修改一条数据DELETEhttp://域名/news/:id根据id删除一条数据三、RestFul实战1、TP框架中的资源路由

手册-路由-资源路由 手册-控制器-资源控制器1、创建api模块php think build --moduleapi2、创建news控制器php think make:controller api/News

3、设置路由(application/route.php)’\think\Route::resource(news,api/news);相当于设置了以下路由\think\Route::get(news,

api/news/index); \think\Route::get(news/create,api/news/create); \think\Route::post(news,api/news/save

); \think\Route::get(news/:id,api/news/read); \think\Route::get(news/:id/edit,api/news/edit); \think\Route::put(

news/:id,api/news/update); \think\Route::delete(news/:id,api/news/delete);设置后会自动注册7个路由规则,如下:标识请求类型生成路由规则

对应操作方法(默认)indexGETnewsindexcreateGETnews/createcreatesavePOSTnewssavereadGETnews /:idreadeditGETnews/:id/edit

editupdatePUTnews/:idupdatedeleteDELETEnews/:iddelete4、修改News控制器,返回json格式数据

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻61335