Пример Spring Boot full REST CRUD

есть ли у кого-нибудь полный пример spring boot REST CRUD? Весна.сайт io просто имеет RequestMapping для GET. Я могу получить сообщение и удалить работу, но не поставить.

Я подозреваю, что именно так я пытаюсь получить параметры, где разъединение, но я не видел примера, когда кто-то выполняет обновление.

в настоящее время я использую приложение so iPhone, поэтому я не могу вставить свой текущий код. Любые рабочие примеры были бы великолепны!

6 ответов


Как вы можете видеть, я реализовал два способа обновления. Первый получит json, а второй получит cusotmerId в URL и json также.

@RestController
@RequestMapping("/customer")
public class CustomerController {


    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public Customer greetings(@PathVariable("id") Long id) {
        Customer customer = new Customer();
        customer.setName("Eddu");
        customer.setLastname("Melendez");
        return customer;
    }

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public List<Customer> list() {
        return Collections.emptyList();
    }

    @RequestMapping(method = RequestMethod.POST)
    public void add(@RequestBody Customer customer) {

    }

    @RequestMapping(method = RequestMethod.PUT)
    public void update(@RequestBody Customer customer) {

    }

    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
    public void updateById(@PathVariable("id") Long id, @RequestBody Customer customer) {

    }

    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    public void delete() {

    }

    class Customer implements Serializable {

        private String name;

        private String lastname;

        public String getName() {
            return name;
        }

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

        public void setLastname(String lastname) {
            this.lastname = lastname;
        }

        public String getLastname() {
            return lastname;
        }
    }
}

или же:

@RepositoryRestResource
public interface CustomerRepository extends JpaRepository<Customer, Long> {
}

использовать аннотации org.springframework.data.rest.core.annotation.RepositoryRestResource, вам нужно добавить следующую зависимость к вашему pom.XML-код:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

альтернативное обновление возвращает объект ResponseEntity.

@RestController
@RequestMapping("/fruits")
public class FruitController {

    private final Logger LOG = LoggerFactory.getLogger(FruitController.class);

    @Autowired
    private FruitService fruitService;

    @RequestMapping(method = RequestMethod.GET)
    public ResponseEntity<List<Fruit>> getAll(@RequestParam(value = "offset", defaultValue = "0") int index,
            @RequestParam(value = "numberOfRecord", defaultValue = "10") int numberOfRecord) {
        LOG.info("Getting all fruits with index: {}, and count: {}", index, numberOfRecord);
        List<Fruit> fruits = fruitService.getAll(index, numberOfRecord);

        if (fruits == null || fruits.isEmpty()) {
            return new ResponseEntity<List<Fruit>>(HttpStatus.NO_CONTENT);
        }

        return new ResponseEntity<List<Fruit>>(fruits, HttpStatus.OK);
    }

    @RequestMapping(value = "{id}", method = RequestMethod.GET)
    public ResponseEntity<Fruit> get(@PathVariable("id") int id) {
        LOG.info("Getting fruit with id: {}", id);
        Fruit fruit = fruitService.findById(id);

        if (fruit == null) {
            return new ResponseEntity<Fruit>(HttpStatus.NOT_FOUND);
        }

        return new ResponseEntity<Fruit>(fruit, HttpStatus.OK);
    }

    @RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<Void> create(@RequestBody Fruit fruit, UriComponentsBuilder ucBuilder) {
        LOG.info("Creating fruit: {}", fruit);

        if (fruitService.exists(fruit)) {
            return new ResponseEntity<Void>(HttpStatus.CONFLICT);
        }

        fruitService.create(fruit);

        HttpHeaders headers = new HttpHeaders();
        headers.setLocation(ucBuilder.path("/fruit/{id}").buildAndExpand(fruit.getId()).toUri());
        return new ResponseEntity<Void>(headers, HttpStatus.CREATED);
    }

    @RequestMapping(value = "{id}", method = RequestMethod.PUT)
    public ResponseEntity<Fruit> update(@PathVariable int id, @RequestBody Fruit fruit) {
        LOG.info("Updating fruit: {}", fruit);
        Fruit currentFruit = fruitService.findById(id);

        if (currentFruit == null) {
            return new ResponseEntity<Fruit>(HttpStatus.NOT_FOUND);
        }

        currentFruit.setId(fruit.getId());
        currentFruit.setName(fruit.getName());

        fruitService.update(fruit);
        return new ResponseEntity<Fruit>(currentFruit, HttpStatus.OK);
    }

    @RequestMapping(value = "{id}", method = RequestMethod.DELETE)
    public ResponseEntity<Void> delete(@PathVariable("id") int id) {
        LOG.info("Deleting fruit with id: {}", id);
        Fruit fruit = fruitService.findById(id);

        if (fruit == null) {
            return new ResponseEntity<Void>(HttpStatus.NOT_FOUND);
        }

        fruitService.delete(id);
        return new ResponseEntity<Void>(HttpStatus.OK);
    }
}

С Spring MVC RESTFul веб-сервис CRUD пример


Я подготовил набор учебных пособий по операциям Spring Boot CRUD. Ниже приведены содержание учебников:

  1. как создать проект Spring Boot с помощью Spring Tool Suite
  2. как реализовать метод GET & POST в spring boot restful web service
  3. как реализовать метод PUT & DELETE в spring boot restful web service
  4. интеграция базы данных PostgreSQL с помощью spring boot JPA с spring boot restful web сервис
  5. использование команд CURL

Ютуб Уроки:

  1. Spring Boot Restful Веб-Сервис Учебник / Учебник 1 - Введение
  2. Spring Boot Restful Web Services CRUD пример GET & POST / учебник-2
  3. пример операций Spring boot CRUD PUT & DELETE / учебник-3
  4. Spring Boot JPA / в 5 простых шагах интеграции База Данных PostgreSQL / Туориал - 4

посетить блог для получения более подробной информации.


вы можете найти полный проект на Spring Boot REST API с CRUD здесь:

Spring Boot полный отдых CRUD пример


вы можете получить мой полный сервер RESTful и клиентское приложение с помощью SpringBoot в весенние примеры RESTFul в github