Промпт: Spring Boot REST API
Этот промпт предназначен для backend-разработчиков, стремящихся освоить создание RESTful API с использованием Spring Framework. Он предоставляет пошаговое руководство по разработке API управления задачами (To-Do List) с применением Spring Boot, Spring Data JPA и Spring Security. В промпте описана структура проекта, создание сущностей, разработка репозиториев и контроллеров, а также реализация аутентификации и авторизации.
Особое внимание уделяется лучшим практикам, обеспечению безопасности и использованию H2 Database для разработки и тестирования. Включает примеры кода, JSON запросы/ответы и инструкции по тестированию API.
Помогает начинающим разработчикам быстро освоить основные концепции и создать рабочий API. Claude Opus 4 поможет вам эффективно использовать этот промпт. Подробное описание настройки Spring Security, использование DTO и варианты расширения API делают этот промпт всеобъемлющим руководством.
Инструкция пользователя: внимательно изучите промпт, следуйте инструкциям по шагам и экспериментируйте с кодом, чтобы лучше понять принципы разработки RESTful API на Spring Framework.
Задача: Разработать детальный план и примеры кода для создания RESTful API с использованием Spring Boot, Spring Data JPA и Spring Security.
Цель: Предоставить четкую и понятную инструкцию для начинающих разработчиков, желающих изучить разработку API на Spring Framework, с акцентом на лучшие практики и обеспечение безопасности.
Контекст: Пользователь – разработчик, который уже знаком с основами Java, но только начинает изучать Spring Framework. Ему необходимо создать RESTful API для простого приложения, например, управления списком задач (To-Do List).
Инструкции:
- Разработать структуру проекта Spring Boot, включающую необходимые зависимости (Spring Web, Spring Data JPA, Spring Security, H2 Database).
- Создать сущность (entity) `Task` с полями: `id` (Long), `title` (String), `description` (String), `completed` (boolean).
- Разработать интерфейс репозитория `TaskRepository`, расширяющий `JpaRepository` для работы с базой данных.
- Реализовать REST контроллер `TaskController` с эндпоинтами:
- `GET /tasks`: Получение списка всех задач.
- `GET /tasks/{id}`: Получение задачи по ID.
- `POST /tasks`: Создание новой задачи.
- `PUT /tasks/{id}`: Обновление существующей задачи.
- `DELETE /tasks/{id}`: Удаление задачи.
- Реализовать логику аутентификации и авторизации с использованием Spring Security.
- Создать пользователя с ролью администратора.
- Ограничить доступ к эндпоинтам только для аутентифицированных пользователей.
- Использовать H2 Database в качестве базы данных для разработки и тестирования.
- Предоставить примеры кода для каждого эндпоинта, включая обработку ошибок и валидацию данных.
- Описать процесс настройки Spring Security для защиты API.
- Указать, какие аннотации Spring используются для создания RESTful API.
- Добавить примеры JSON запросов и ответов для каждого эндпоинта.
- Описать, как протестировать разработанный API (например, с использованием Postman или curl).
- Подробно описать настройку подключения к базе данных и миграцию схемы данных при необходимости.
- Рассмотреть возможность использования DTO (Data Transfer Object) для изоляции слоев приложения.
- Предложить возможные улучшения и расширения API.
Пример работы "Промпт: Spring Boot REST API"
Детальное руководство по созданию RESTful API с Spring Boot
1. Структура проекта и зависимости
1.1 Создание проекта
Используйте Spring Initializr (https://start.spring.io/) со следующими параметрами: - Project: Maven - Language: Java - Spring Boot: 3.2.0 (или последняя стабильная) - Java: 17
1.2 pom.xml - Зависимости
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>todo-api</artifactId>
<version>1.0.0</version>
<name>todo-api</name>
<description>RESTful API for To-Do List application</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- H2 Database -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- Lombok (опционально, для уменьшения boilerplate кода) -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- Testing -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
1.3 Структура пакетов
src/main/java/com/example/todoapi/
├── TodoApiApplication.java
├── config/
│ └── SecurityConfig.java
├── controller/
│ └── TaskController.java
├── dto/
│ ├── TaskCreateDTO.java
│ ├── TaskUpdateDTO.java
│ └── TaskResponseDTO.java
├── entity/
│ ├── Task.java
│ └── User.java
├── repository/
│ ├── TaskRepository.java
│ └── UserRepository.java
├── service/
│ ├── TaskService.java
│ └── TaskServiceImpl.java
└── exception/
├── ResourceNotFoundException.java
└── GlobalExceptionHandler.java
2. Конфигурация приложения
2.1 application.properties
# Имя приложения
spring.application.name=todo-api
# Конфигурация H2 Database
spring.datasource.url=jdbc:h2:mem:tododb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# JPA/Hibernate
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
# H2 Console (для отладки)
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
# Server
server.port=8080
# Logging
logging.level.org.springframework.security=DEBUG
logging.level.com.example.todoapi=DEBUG
3. Слой Entity (Модель данных)
3.1 Task Entity
....
Похожие промпты
Mikhail
30.01.2026
Промпт для vLLM: Backend-разработка
Этот промпт предназначен для backend-разработчиков, специализирующихся на развертывании моделей машинного обучения. Он поможет разработать и …
Mikhail
22.11.2025
Промпт для создания AI-агентов в CrewAI
Этот промпт предназначен для менторов, разработчиков и технических специалистов, стремящихся к эффективной автоматизации сложных рабочих …
Mikhail
30.01.2026
Промпт для web develop: приложения управления проектами
Этот промпт предназначен для full-stack разработчиков и помогает создать детальный план разработки веб-приложения для управления …
Mikhail
04.02.2026
Nuxt 3 Промпт для начинающих
Этот промпт предназначен для Nuxt-разработчика. Ассистент выполняет роль ментора, и направлен на помощь начинающему веб-разработчику …
Mikhail
30.01.2026
Промпт для React интерфейса задач фронт
Этот промпт предназначен для frontend-разработчиков с опытом работы 2 года и поможет в создании интерактивного …
Mikhail
29.08.2025
Промпт для создания REST-контроллера
Этот промпт помогает разработчикам быстро создавать REST-контроллеры с учетом всех необходимых технических требований. Промпт подходит …
Авторизуйтесь, чтобы оставить комментарий.
Нет комментариев.