当前位置:网站首页>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
- The road of C + + Learning: from introduction to mastery
- Building and visualizing decision tree with Python
- The difference between gbdt and XGB, and the mathematical derivation of gradient descent method and Newton method
- How to demote domain controllers and later in Windows Server 2012
- React design pattern: in depth understanding of react & Redux principle
- 一篇文章教会你使用Python网络爬虫下载酷狗音乐
- Multi classification of unbalanced text using AWS sagemaker blazingtext
- How to understand Python iterators and generators?
- The data of pandas was scrambled and the training machine and testing machine set were selected
猜你喜欢
How to understand Python iterators and generators?
有了这个神器,快速告别垃圾短信邮件
Natural language processing - BM25 commonly used in search
Live broadcast preview | micro service architecture Learning Series live broadcast phase 3
一篇文章带你了解CSS3 背景知识
【:: 是什么语法?】
Wow, elasticsearch multi field weight sorting can play like this
How to customize sorting for pandas dataframe
Individual annual work summary and 2019 work plan (Internet)
用一个例子理解JS函数的底层处理机制
随机推荐
WeihanLi.Npoi 1.11.0/1.12.0 Release Notes
Python基础数据类型——tuple浅析
一部完整的游戏,需要制作哪些音乐?
Shh! Is this really good for asynchronous events?
Brief introduction of TF flags
Vite + TS quickly build vue3 project and introduce related features
python100例項
一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试
StickEngine-架构11-消息队列(MessageQueue)
keras model.compile Loss function and optimizer
前端基础牢记的一些操作-Github仓库管理
What are PLC Analog input and digital input
5.4 static resource mapping
Live broadcast preview | micro service architecture Learning Series live broadcast phase 3
Basic usage of GDB debugging
使用 Iceberg on Kubernetes 打造新一代雲原生資料湖
零基础打造一款属于自己的网页搜索引擎
Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
【應用程式見解 Application Insights】Application Insights 使用 Application Maps 構建請求鏈路檢視
MeterSphere开发者手册