当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 快速排序为什么这么快?
- Electron application uses electronic builder and electronic updater to realize automatic update
- With the advent of tensorflow 2.0, can pytoch still shake the status of big brother?
- Python基础变量类型——List浅析
- [C / C + + 1] clion configuration and running C language
- Custom function form of pychar shortcut key
- StickEngine-架构11-消息队列(MessageQueue)
- The road of C + + Learning: from introduction to mastery
- Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战
- DC-1靶機
猜你喜欢

Python filtering sensitive word records

Introduction to the structure of PDF417 bar code system

前端工程师需要懂的前端面试题(c s s方面)总结(二)

Interface pressure test: installation, use and instruction of siege pressure test

vue任意关系组件通信与跨组件监听状态 vue-communication

Python download module to accelerate the implementation of recording

Word segmentation, naming subject recognition, part of speech and grammatical analysis in natural language processing

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

游戏开发中的新手引导与事件管理系统

FastThreadLocal 是什么鬼?吊打 ThreadLocal 的存在!!
随机推荐
【應用程式見解 Application Insights】Application Insights 使用 Application Maps 構建請求鏈路檢視
If PPT is drawn like this, can the defense of work report be passed?
A brief history of neural networks
How to demote domain controllers and later in Windows Server 2012
What are the criteria for selecting a cluster server?
Even liver three all night, jvm77 high frequency interview questions detailed analysis, this?
Python download module to accelerate the implementation of recording
Wow, elasticsearch multi field weight sorting can play like this
Asp.Net Core learning notes: Introduction
Building and visualizing decision tree with Python
一篇文章带你了解HTML表格及其主要属性介绍
Introduction to the structure of PDF417 bar code system
How to hide part of barcode text in barcode generation software
What course of artificial intelligence? Will it replace human work?
给字节的学姐讲如何准备“系统设计面试”
Basic principle and application of iptables
What to do if you are squeezed by old programmers? I don't want to quit
What are Devops
Analysis of ThreadLocal principle
华为Mate 40 系列搭载HMS有什么亮点?