当前位置:网站首页>Application of restful API based on MVC
Application of restful API based on MVC
2020-11-06 20:10:00 【itread01】
`PUT/users{id}`[^ Create a resource for the client to maintain the primary key information ] | | Delete | `DELETE/users/{id}` | | modify / to update | `PUT/users/{id}` | | Look up all | `GET/users` | | Primary key query | `GET/users/{id}`
`GET/users?id=26` | | Paging scope query | `GET/users?start=0&size=10`
`GET/users?07,2019-07,2020` | You can see through this `RESTAPI` It's all through the right to == The same resource == The operation of , The difference is through different ==HTTP Method == To achieve different processing of resources . #### 2.`MVC` Yes `REST` Support for ##### 1.1 Mainly through annotations * `@Controller` Name a controller that handles requests * `@RequestMapping` Request mapping address , It has several sub annotations for implementation `REST` In terms of style, it is more == Semantic == * `@GETMapping` ==GET Ask for == * `@PUTMapping` ==PUT Ask for == * `@POSTMapping` ==POST Ask for == * `@DELETEMapping` ==DELETE Ask for == * `@ResponseBody` Convert the response content to `JSON` Format * `@RequestBody` The request content is converted to `JSON` Format * `@PathVariable("id")` Used to bind an argument * `@RESTController` Equal to `@Controller`+`@ResponseBody` This annotation is written on the class , All methods that identify this class are only == Return data ==, Instead of == View jump == ##### 1.2 return `HTTP` Status code **`REST` Style `API` One of the most distinctive features is by returning the corresponding `HTTPStatus` To determine whether the operation of the client is completed ** == Here is spring About `Http` The enumeration class described by the state code , This paper lists the common status codes ==( If readers are interested in this, they can check `HttpStatus` Source code ) ~~~java public enum HttpStatus{ OK(200, "OK"),// Used for server with physical response CREATED(201, "Created"),// A new entity has been established , Respond to the entity NO_CONTENT(204, "No Content"),// The server is responding normally , But no physical response BAD_REQUEST(400, "Bad Request"),// Client request syntax error NOT_FOUND(404, "Not Found"),// The target resource does not exist INTERNAL_SERVER_ERROR(500, "Internal Server Error"),// Server internal error NOT_IMPLEMENTED(501, "Not Implemented"),// The server does not support the current request } ~~~ Spring The status code is returned by `@ResponseStatus` Note or `ResponseEntity ` Class . ==`@ResponseStatus` The way == ~~~java @GetMapping(path = "/user/{id}" , produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.OK) public User findUserById(@PathVariable("id")Integer id){ User user = userService.findUserById(id); return user ; } ~~~ ==`ResponseEntity `== The way ~~~java @GetMapping(produces = "application/json;charset=utf-8") public ResponseEntity
-
> findAll(){ List
-
>(users , HttpStatus.OK); } ~~~ ##### 1.3 Because of `MVC` Default not supported `PUT` and `DELETE` Method , So you need to turn it on manually * stay `tomcat` Server's `web.xml` Open the configuration in the file * ~~~xml
-
> findAll(){ List
-
>(users , HttpStatus.OK); } /**、 * According to ID Inquire about * @param id * @return */ @GetMapping(path = "/{id}" , produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.OK) public User findUserById(@PathVariable("id")Integer id){ User user = userService.findUserById(id); return user ; } /** * Add a user * Return the user */ @PostMapping(produces = "application/json;charset=utf-8") @ResponseStatus(HttpStatus.CREATED) public User addUser(@RequestBody User user){ User newUser = userService.addUser(user); return newUser ; } /** * to update * @param user */ @PutMapping(path = "/{id}" ,produces = "application/json;charset=utf-8") public ResponseEntity
版权声明
本文为[itread01]所创,转载请带上原文链接,感谢
边栏推荐
- Introduction to the structure of PDF417 bar code system
- 零基础打造一款属于自己的网页搜索引擎
- A course on word embedding
- Music generation through deep neural network
- 给字节的学姐讲如何准备“系统设计面试”
- 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
- Mac installation hanlp, and win installation and use
- 用一个例子理解JS函数的底层处理机制
- electron 實現檔案下載管理器
- Wow, elasticsearch multi field weight sorting can play like this
猜你喜欢
只有1个字节的文件实际占用多少磁盘空间
GUI engine evaluation index
A course on word embedding
Recommendation system based on deep learning
Interface pressure test: installation, use and instruction of siege pressure test
理解格式化原理
StickEngine-架构12-通信协议
Mac installation hanlp, and win installation and use
ES6学习笔记(二):教你玩转类的继承和类的对象
What are PLC Analog input and digital input
随机推荐
华为Mate 40 系列搭载HMS有什么亮点?
Analysis of ThreadLocal principle
Pollard's Rho algorithm
零基础打造一款属于自己的网页搜索引擎
Discussion on the development practice of aspnetcore, a cross platform framework
一篇文章教会你使用Python网络爬虫下载酷狗音乐
What are PLC Analog input and digital input
How to hide part of barcode text in barcode generation software
The data of pandas was scrambled and the training machine and testing machine set were selected
What if the front end doesn't use spa? - Hacker News
ES6学习笔记(四):教你轻松搞懂ES6的新增语法
Mac installation hanlp, and win installation and use
Shh! Is this really good for asynchronous events?
Electron application uses electronic builder and electronic updater to realize automatic update
这个项目可以让你在几分钟快速了解某个编程语言
StickEngine-架构12-通信协议
一篇文章教会你使用Python网络爬虫下载酷狗音乐
游戏主题音乐对游戏的作用
【應用程式見解 Application Insights】Application Insights 使用 Application Maps 構建請求鏈路檢視
Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战