Как создать элегантный интерфейс RESTFUL

Java
Как создать элегантный интерфейс RESTFUL

покажи мне код и поговори со мной
Я Bul bl, ваша поддержка - моя мотивация поделиться!

1. Введение

Дизайн интерфейсов — это повседневная работа наших разработчиков. Когда мы передаем интерфейс фронтенд-персоналу, возникает иллюзия извлечения меча из ножен? Ведь интерфейс доставлен, и наша работа по разработке завершается поэтапно. Но что, если у нас нет спецификации дизайна интерфейса? Давайте сделаем снимок, чтобы почувствовать это.

2. ОТДЫХ

В 2000 году молодой парень (Рой Томас Филдинг) предложил REST в своей докторской диссертации. REST — это стиль архитектуры программного обеспечения для World Wide Web. Почему это стиль, а не стандарт? Личное понимание может сказать, что стандарт слишком много. Мальчик не может этого сделать. Позже этот стиль популяризировался, и он был хорошо известен публике. На основе REST родился RESTFUL. Что такое ОТДЫХАТЬ? Проще говоря, интерфейс в стиле REST RESTFUL.

3. ОТДЫХАНИЕ

Существуют различные интерфейсы. Так же, как в глазах тысячи людей есть тысяча Лу Синей. Как именно выглядит интерфейс RESTFUL?

3.1 HTTP-методы

В HTTP есть несколько основных методов. Мы используем эти соглашения для некоторых спецификаций.

метод эффект
GET получить данные
POST вставить данные
PUT обновить данные
DELETE удалить данные

Из таблицы, если мы ясно видим, что когда наш интерфейс предназначен для получения данных, то мы используем метод GET.
Если мы ясно видим, когда наш интерфейс предназначен для вставки данных, тогда мы используем метод POST.
Если мы ясно видим, когда наш интерфейс обновляет данные, то мы используем метод PUT.
Если мы ясно видим, когда наш интерфейс предназначен для удаления данных, тогда мы используем метод DELECT.

3.2 Существительное

В вышеизложенном мы уже знаем, когда и какие методы нужны для интерфейса, поэтому давайте теперь перейдем ко второму шагу проектирования интерфейса.

Давайте посмотрим, как выглядит интерфейс онлайн-сайта.

На рисунке мы видим, что есть v1, которая представляет номер версии, поэтому при разработке интерфейса мы можем написать номер версии, который представлен v1, v2, v3 и т. д.

Мы обнаружили, что все его интерфейсы — существительные. Итак, мы знаем, что интерфейс RESTFUL использует существительные. Например, если мы разрабатываем интерфейс для получения данных, мы можем спроектировать его следующим образом.

/v1/list 

Приведенный выше интерфейс предназначен для получения всех данных.

Когда нам нужен фрагмент данных в списке, мы можем оформить его следующим образом.

/v1/list/1 

Вышеприведенный интерфейс указывает, что приобретение является данными № 1 в списке.Мы можем получить данные № 2, № 3 и т. д., если число изменено.

3.3 Комбинация

Объединив два вышеуказанных шага, мы можем разработать спокойный интерфейс для добавления, удаления, изменения и проверки.

интерфейс метод эффект
/v1/list GET получить список
/v1/list POST добавить список
/v1/list PUT список обновлений
/v1/list DELETE удалить список

3.4 Применение

Ниже приведена демонстрация исходного кода.

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
@Slf4j
public class LsbRestfulApplication {

    public static void main(String[] args) {
        SpringApplication.run(LsbRestfulApplication.class, args);
    }

    /**
     * 得到所有列表
     * @return
     */
    @RequestMapping(value = "/v1/list",method = RequestMethod.GET)
    public String getList(){
        log.info("得到列表");
        return "得到列表";
    }

    /**
     * 得到列表中的一条
     * @param name
     * @return
     */
    @RequestMapping(value = "/v1/list/{name}",method = RequestMethod.GET)
    public String getListone(@PathVariable("name") String name){
        log.info("得到列表"+name);
        return "得到列表"+name;
    }

    /**
     * 往列表中的增加一条数据
     * @return
     */
    @RequestMapping(value = "/v1/list",method = RequestMethod.POST)
    public String addList(){
        log.info("增加一个列表1");
        return "增加一个列表1";
    }

    /**
     * 更新列表中的一条数据
     * @return
     */
    @RequestMapping(value = "/v1/list/{name}",method = RequestMethod.PUT)
    public String updateListOne(@PathVariable("name") String name){
        log.info("更新列表"+name);
        return "更新列表"+name;
    }
    
    /**
     * 删除所有列表
     * @return
     */
    @RequestMapping(value = "/v1/list",method = RequestMethod.DELETE)
    public String delList(){
        log.info("删除一个列表");
        return "删除一个列表";
    }
}

4. Сайт знакомств в том же городе

github.com/buerbl

Пароль: Цзин Кэ наносит удар королю Цинь.

публика