RESTful API для работы с заметками. Поддерживает фильтрацию, сериализацию, AI-переписывание текста и интерактивную Swagger-документацию.
- ✅ CRUD-операции с заметками
- ✅ Фильтрация по параметру
archived - ✅ Ответы в формате JSON
- ✅ Интеграция с OpenAI GPT для переписывания текста в нужном стиле
- ✅ Полная Swagger-документация (
/api-docs) - ✅ Покрытие тестами с помощью RSpec
- ✅ Сериализация через
ActiveModel::Serializer - ✅ Использование ООП и чистой архитектуры
При создании или получении заметки можно задать стиль (rewrite_mode), в котором будет переписан текст:
rewrite_mode |
Стиль |
|---|---|
0 |
Вежливый (polite) |
1 |
Радостный (cheerful) |
2 |
Загадочный (mysterious) |
🎯 Пример:
POST /api/v1/notes
{
"title": "Планы",
"body": "Ты ничего не успеваешь",
"rewrite_mode": 0
}📤 Ответ:
{
"title": "Планы",
"body": "Пожалуйста, постарайтесь организовать свое время более эффективно 🙏"
}| Метод | Путь | Описание |
|---|---|---|
| GET | /api/v1/notes |
Список всех заметок (поддерживает ?archived=true) |
| GET | /api/v1/notes/:id |
Получить одну заметку (можно передать rewrite_mode) |
| POST | /api/v1/notes |
Создать заметку (можно указать rewrite_mode) |
| PUT | /api/v1/notes/:id |
Обновить заметку |
| DELETE | /api/v1/notes/:id |
Удалить заметку |
git clone https://github.com/Slncr/notes-api.git
cd notes-api
bundle install
rails db:create db:migrateСоздайте .env или используйте переменные системы:
OPENAI_API_KEY=your_openai_api_key
PROXY_URL=http://your_proxy_if_neededbundle exec rspecПосле запуска сервера, Swagger доступен по адресу:
http://localhost:3333/api-docs
- Ruby on Rails 7
- PostgreSQL / SQLite
- RSpec
- Rswag (Swagger)
- OpenAI API
- ActiveModel::Serializer