首页 > 大数据 > 数据分析 > 程序员必备的API知识:从基础到高级
java.util库提供了集合操作的API,而Spring框架提供了MVC、数据访问等API。POST方法,获取操作都使用
GET方法。/api/v1/resource),可以方便地进行API升级。/users表示用户资源,
/users/{id}表示特定用户。GET、
POST、
PUT、
DELETE)操作资源。例如:GET /users:获取用户列表。POST /users:创建新用户。PUT /users/{id}:更新用户信息。DELETE /users/{id}:删除用户。query {
user(id: 1) {
name
email
}}import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.*;@SpringBootApplicationpublic class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}}@RestController@RequestMapping("/api/v1/users")class UserController {
@GetMapping
public List<User> getAllUsers() {
// 返回用户列表
return userRepository.findAll();
}
@PostMapping
public User createUser(@RequestBody User user) {
// 创建新用户
return userRepository.save(user);
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
// 根据ID获取用户
return userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found"));
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
// 更新用户信息
user.setId(id);
return userRepository.save(user);
}
@DeleteMapping("/{id}")
public void deleteUser(@PathVariable Long id) {
// 删除用户
userRepository.deleteById(id);
}}GET /users是否返回正确的用户列表。import io.swagger.v3.oas.annotations.media.Content;import io.swagger.v3.oas.annotations.media.Schema;import io.swagger.v3.oas.annotations.responses.ApiResponse;import io.swagger.v3.oas.annotations.tags.Tag;@RestController@RequestMapping("/api/v1/users")@Tag(name = "User Management", description = "APIs for managing users")class UserController {
@GetMapping
@ApiResponse(responseCode = "200", description = "Successfully retrieved users",
content = @Content(schema = @Schema(implementation = User.class)))
public List<User> getAllUsers() {
// 返回用户列表
return userRepository.findAll();
}
@PostMapping
@ApiResponse(responseCode = "201", description = "Successfully created user",
content = @Content(schema = @Schema(implementation = User.class)))
public User createUser(@RequestBody User user) {
// 创建新用户
return userRepository.save(user);
}}Cache-Control)控制客户端缓存,减少重复请求。page和
size参数)减少单次请求的数据量,提升性能。/api/v1/resource。这种方式简单明了,便于客户端选择版本。X-API-Version)控制版本。这种方式对URI无侵入性,但需要客户端显式指定版本。Accept头的
Content-Type字段控制版本,如
application/vnd.example.v1+json。如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70041666/viewspace-3075129/ ,如需转载,请注明出处,否则将追究法律责任。