PHP程序猿的Spring Boot之旅-Spring Boot实现restful api

在《PHP程序猿的Spring Boot之旅-Spring Boot项目创建》中已经可以搭建了Spring Boot的项目了,接下来我们使用Spring Boot实现restful api,对人员进行curd操作。

创建项目

创建项目的步骤请参考《PHP程序猿的Spring Boot之旅-Spring Boot项目创建》。

代码开发

创建entitycontroller包:

https://raw.githubusercontent.com/sockstack/hexo_blog_img/master/spring-boot-study-demo/demo2/%E5%88%9B%E5%BB%BAentity%E5%92%8Ccontroller%E5%8C%85.png

添加实体和控制器

1.在entity包下添加Person实体,在controller包下添加PersonController控制器:

https://raw.githubusercontent.com/sockstack/hexo_blog_img/master/spring-boot-study-demo/demo2/%E6%B7%BB%E5%8A%A0%E5%AE%9E%E4%BD%93%E5%92%8C%E6%8E%A7%E5%88%B6%E5%99%A8.png

2.实体和控制器的内容:

Person:

package cn.sockstack.demo.entity;

public class Person {
    /**
     * id
     */
    private String id;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

PersonController:

package cn.sockstack.demo.controller;

import cn.sockstack.demo.entity.Person;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;

@RestController
public class PersonController {
    private static ConcurrentHashMap<String, Person> personHashMap = new ConcurrentHashMap<>();
    /**
     * 获取所有的person
     * @return
     */
    @GetMapping("/")
    public Map<String, Person> getPerson() {
        return personHashMap;
    }

    /**
     * 新增person
     * @return
     */
    @PostMapping("/")
    public Person storePerson(Person person) {
        String uuid = UUID.randomUUID().toString();
        person.setId(uuid);

        personHashMap.put(uuid, person);

        return person;
    }

    @DeleteMapping("/")
    public Person deletePerson() {
        return null;
    }

    /**
     * 修改··
     * @param id
     * @param person
     * @return
     */
    @PutMapping("/{id}")
    public Person editPerson(@PathVariable String id, Person person) {
        Person person1 = personHashMap.get(id);

        BeanUtils.copyProperties(person, person1, "id");

        personHashMap.put(id, person1);

        return person1;
    }

    /**
     * 获取一个person
     * @return
     */
    @GetMapping("/{id}")
    public Person getPerson(@PathVariable String id) {
        return personHashMap.get(id);
    }
}

启动程序后,打开postman进行curd测试即可。