当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- How to understand Python iterators and generators?
- Wechat applet: prevent multiple click jump (function throttling)
- Vite + TS quickly build vue3 project and introduce related features
- nacos、ribbon和feign的簡明教程
- It is really necessary to build a distributed ID generation service
- Introduction to quantitative investment and Trading (Python introduction to financial analysis)
- 【自学unity2d传奇游戏开发】地图编辑器
- 開源一套極簡的前後端分離專案腳手架
- 有了这个神器,快速告别垃圾短信邮件
- 新建一个空文件占用多少磁盘空间?
猜你喜欢

GUI engine evaluation index

事件监听问题
![[Xinge education] poor learning host computer series -- building step 7 Simulation Environment](/img/f8/4bb6f887d56a7a18eb55cbec579204.jpg)
[Xinge education] poor learning host computer series -- building step 7 Simulation Environment

Cglib 如何实现多重代理?

The dynamic thread pool in Kitty supports Nacos and Apollo multi configuration centers

For a while, a dynamic thread pool was created, and the source code was put into GitHub

StickEngine-架构12-通信协议

Brief introduction of TF flags

一篇文章教会你使用HTML5 SVG 标签

NLP model Bert: from introduction to mastery (1)
随机推荐
Jetcache buried some of the operation, you can't accept it
Python基础数据类型——tuple浅析
理解格式化原理
Analysis of ThreadLocal principle
Network programming NiO: Bio and NiO
01. SSH Remote terminal and websocket of go language
用一个例子理解JS函数的底层处理机制
Lane change detection
What are PLC Analog input and digital input
消息队列(MessageQueue)-分析
How to customize sorting for pandas dataframe
Chainlink brings us election results into blockchain everipedia
Even liver three all night, jvm77 high frequency interview questions detailed analysis, this?
Solve the problem of database insert data garbled in PL / SQL developer
有了这个神器,快速告别垃圾短信邮件
一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
How to understand Python iterators and generators?
Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
一篇文章带你了解CSS3 背景知识
Python saves the list data