Недавно я изучил спецификацию интерфейса RESTful и использовал Postman, чтобы представить ее. Вот соответствующие спецификации интерфейса RESTful: 1. Что такое RESTful?
REST: это архитектурный стиль веб-сервисов; он использует широко распространенные стандарты и протоколы, такие как HTTP, URI, XML, JSON и HTML. Это легкий, кроссплатформенный и межъязыковой архитектурный дизайн; стиль, а не стандарт. Стандарт – это идея.
RESTful: соответствующий китайский язык — REST; веб-служба Restful — это обычное приложение REST, которое представляет собой веб-службу, соответствующую стилю REST; веб-служба REST — это своего рода архитектура ROA (ресурсно-ориентированная архитектура). ) [Рекомендация: веб-интерфейс]
Суть RESTful — это стиль архитектуры программного обеспечения. Ядро ориентировано на ресурсы и решает следующие задачи:
Уменьшите сложность разработки
Улучшение масштабируемости системы
2. Разница между SOAP и REST:
SOAP (простой протокол доступа к объектам): спецификация протокола для обмена данными. Это легкий и простой протокол на основе XML.
REST (передача репрезентативного состояния): стиль архитектуры программного обеспечения, который может снизить сложность разработки и улучшить масштабируемость системы.
Эффективность и простота использования :
SOAP : из-за постоянного расширения содержания собственного протокола в связи с различными потребностями производительность обработки SOAP снизилась. В то же время простота использования и стоимость обучения также возросли.
RESTful : благодаря ресурсо-ориентированному дизайну интерфейса и абстракции операций он упрощает неудачные проекты разработчиков, а также максимально использует исходную концепцию проектирования протокола приложения HTTP.
Безопасность :
RESTful очень подходит для сервисных интерфейсов на основе ресурсов и особенно подходит для сценариев, требующих высокой эффективности, но низких требований к безопасности.
Зрелость SOAP может повысить удобство проектирования интерфейсов, которые необходимо предоставлять для нескольких языков разработки и предъявлять более высокие требования к безопасности.
В итоге:
Безопасность : SOAP будет лучше, чем REST;
Эффективность и простота использования : REST лучше;
Зрелость : вообще говоря, SOAP превосходит REST с точки зрения зрелости.
3. Как разработать RESTful API :
Путь к ресурсу . В архитектуре RESTful каждый URL-адрес представляет ресурс, поэтому URL-адрес не может содержать глаголов, а только существительные. Вообще говоря, существительные в API должны стоять во множественном числе.
Глагол HTTP : Операция ресурсов (CURD), представленная глаголом HTTP (предикатом).
GET: получить ресурсы (один или несколько элементов) с сервера.
POST: Создайте новый ресурс на сервере.
PUT: обновление ресурсов на сервере (клиент предоставляет полностью измененные ресурсы).
УДАЛЕНИЕ: удалить ресурс с сервера.
В качестве примера возьмем зоопарк (включая информацию о различных животных и сотрудниках):
https://api.example.com/v1/zoos //Ресурсы зоопарка https://api.example.com/v1/animals //Ресурсы животных https://api.example.com/v1/employees //Сотрудники ресурс
POST /zoos: Создайте новый зоопарк
GET /zoos/ID: получить информацию об указанном зоопарке.
PUT /zoos/ID: обновить информацию об указанном зоопарке.
DELETE /zoos/D: удалить зоопарк.
Фильтровать информацию :
?limit=10: укажите количество возвращаемых записей.
?offset=10: указывает начальную позицию возвращаемой записи.
?page=2&per_page=100: укажите, какая страница и количество записей на странице.
?sortby=name&order=asc: укажите, по какому атрибуту сортируются возвращаемые результаты, а также порядок сортировки.
?animal_type_id=1: указать условия фильтра.
Код состояния :
200 (ОК) — если существующий ресурс был изменен
201 (создан) — если создается новый ресурс
202 (принят) — запрос на обработку принят, но не завершен (асинхронная обработка)
301 (перемещено навсегда) — URI ресурса обновлен.
303 (см. «Прочее») — «Прочее» (например, балансировка нагрузки)
400 (плохой запрос) — относится к неверному запросу.
404 (не найден)-Ресурс не существует.
406 (недопустимо) — Сервер не поддерживает необходимое представление.
409 (конфликт) — Общий конфликт
412 (не выполнено предварительное условие) — предварительное условие не выполнено (например, конфликт при выполнении обновлений условий).
415 (неподдерживаемый тип носителя) — полученное представление не поддерживается.
500 (внутренняя ошибка сервера) — общий ответ об ошибке
503 (Служба недоступна) — служба в настоящее время не может обработать запрос.
Обработка ошибок :
Возвращаемая информация использует error в качестве имени ключа и информацию об ошибке в качестве значения ключа.
{
ошибка: «Неверный ключ API»
}Результаты возврата :
GET /collection: возвращает список (массив) объектов ресурсов.
GET /collection/resource: возвращает один объект ресурса.
POST/collection: возвращает вновь созданный объект ресурса.
PUT /collection/resource: возвращает полный объект ресурса.
PATCH /collection/resource: возвращает полный объект ресурса.
DELETE /collection/resource: возвращает пустой документ.
4. Процесс тестирования интерфейса в стиле REST :
Давайте представим это непосредственно с картинкой.

5. Написание кода и тестирование Postman :
Инструменты: идея, база данных MySQL, Postman.
Данные таблицы базы данных:

Класс сущности:
Вход в курс повышения квалификации по интерфейсу (vue): введите обучение
@Данные
@ApiModel("Класс сущностей пользователя")
публичный класс User расширяет Model<User> реализует Serializable {
@ApiModelProperty("идентификатор пользователя")
@NotNull(message = «Идентификатор пользователя не может быть пустым»)
частный целочисленный идентификатор;
@NotBlank(message = «Имя пользователя не может быть пустым»)
@ApiModelProperty("имя пользователя")
частное имя строки;
@Мин(1)
@Макс(100)
@ApiModelProperty("Возраст пользователя")
частный Целочисленный возраст;
@NotEmpty(message = «Почтовый ящик не может быть пустым»)
@ApiModelProperty("Электронная почта пользователя")
@Электронная почта
личная строка электронной почты;
@ApiModelProperty("0: Не удалено 1: Удалено")
@TableLogic
частное целое число удалено;
@NotBlank(message = «Пароль не может быть пустым»)
@ApiModelProperty("Пароль пользователя")
личный строковый пароль;
}Код уровня контроллера (сервисный уровень опущен):
@Api(tags = «Управление пользователями»)
@RestController
@RequestMapping("/MyWebsite/user")
публичный класс UserController {
@Autowired
частный UserServiceImpl userServiceimpl;
@ApiOperation(значение = «Новый пользователь»)
@PostMapping
public int InsertUser (Пользователь-пользователь) {
System.out.println("Добавление успешно");
вернуть userServiceimpl.insertUser(пользователь);
}
@ApiOperation(value = «Изменить информацию о пользователе»)
@PutMapping
public void updateUser(@RequestBody @Valid Пользователь) {
userServiceimpl.updateUser(пользователь);
System.out.println("Модификация прошла успешно");
}
@ApiOperation(value = «Удалить пользователя», примечания = «Удалить пользователя по идентификатору»)
@DeleteMapping("/{id}")
public int deleteUser(@ApiParam("идентификатор пользователя") @PathVariable @Valid Integer id) {
System.out.println("Удаление успешно");
вернуть userServiceimpl.deleteUser(id);
}
@ApiOperation(value = «Опросить всех пользователей»)
@GetMapping
публичный список <Пользователь> allUser() {
System.out.println("Запрос успешен");
вернуть userServiceimpl.allUser();
}
@ApiOperation(value = «идентификатор пользователя запроса»)
@GetMapping("/{id}")
public User selectById(@PathVariable("id") String id) {
вернуть userServiceimpl.selectById(id);
}
} Используйте Postman для проверки (URL-путь должен соответствовать):
Опрос всех пользователей : http://localhost:8081/MyWebsite/user
Заголовок: Content-Type=application/json
Тело: пустое

Запрос успешен!
Запрос по идентификатору:

Запрос успешен!
Добавить нового пользователя :

Убедитесь, что база данных успешно добавлена!

Изменить информацию о пользователе (изменить имя и возраст с идентификатором 7):

Убедитесь, что модификация базы данных прошла успешно!

Удаление пользователей по идентификатору :

Убедитесь, что база данных успешно удалена! (удален=1)
Возможно, вы удалили весь фрагмент данных напрямую.

При запросе, обновлении или удалении несуществующих данных (или данные недопустимы) выполнение не выполняется. Существуют и другие интерфейсы, например удаление всех интерфейсов, я не проверял их здесь по одному. Если есть какие-либо ошибки, пожалуйста. укажите на них.
Выше приведено подробное описание спецификации интерфейса restful и инструмента отладки почтальона!
