1 год назад
История
README.md
Смирнов А.В.
API для управления контентом на сайте (Headless CMS)
Laravel, PostgreSQL
API на базе фреймворка Laravel, используемое в качестве Headless CMS для управления контентом на сайте. Предоставляет функционал для управления статьями и изображениями. Статьи контента содержат заголовок, содержание, автора и дату публикации. Изображения имеют название, описание и ссылку на файл. Изображения к статьям ‘многие-ко-многим’. БД PostgreSQL.
2023-08-16.
Добавлено:
- Добавлена работа с привязкой изображений
2023-08-14.
Добавлено:
- Добавлены комментарии.
- Добавлена пагинация при выводе списка статей и изображений.
- Реализован поиск по статьям.
- Реализованы CRUD операции для изображений. Изображения могут быть привязаны к статьям. (Предусмотрены физическое удаление файла и возможность заменять файл, не меняя ID в бд).
- Добавлено заполнение базы ‘фэйковыми’ данными.
2023-08-13.
Реализовано:
- Миграция БД с построением зависимостей (Созданы модели данных для статей и изображений. Отношение: многие-ко-многим).
- Аутентификация и регистрация. Реализоано на базе Laravel Passport с выдачей постоянных токенов.
- Реализованы CRUD операции для статей (создание, чтение, обновление, удаление).
Указания к установке:
- Загрузить файл с zip архивом проекта из GitFlic и распаковать его.
- Создать пустую базу данных
- Зайти в папку проекта
- Установить Composer с сайта https://getcomposer.org/
- Запустить команду «Composer update»
- Переименовать файл env.example в файл .env
- Открыть переименованный файл и задать параметры созданной ранее базы данных.
Для PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=адрес_сервера_БД
DB_PORT=5432
DB_DATABASE=имя_базы_данных
DB_USERNAME=имя_пользователя
DB_PASSWORD=пароль - Запустить генератор ключа “php artisan key:generate”
- В случае необходимости, создать на сервере симлинк на папку public проекта
- Сделать симлинк на папку с сохраненными изображениями: php artisan storage:link
- Запустить миграцию и первоначальное заполнение базы данных при помощи команды «php artisan migrate:fresh –seed»
- Получеить токены безопасности: php artisan passport:install
- Прописать токены безопасности в файл конфигурации .env PASSPORT_PERSONAL_ACCESS_CLIENT_ID=“ид_токена” PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=“токен”
Интерфейс:
Регистрация и авторизация.
- Регистрация.
register, метод POST, в теле запроса, поля:- name
- password
- r_password
- Авторизация.
login, метод POST, в теле запроса, поля:- password
- Получение инфрмации об авторизованном пльзователе.
get-user, метод GET, в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен
Работа со статьями. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
- Создание статьи.
article, метод POST, в теле запроса, поля:- article_name
- article_text
- Просмотр всех статей.
article?per_page=2&page=2, метод GET.
per_page и page - необязательные параметры, определяющие, соответственно, число статей на странице (по умолчению = 10) и номер страницы. - Просмотр статьи по её ID
article/, метод GET. - Поиск статьи по её автору/заголовку/содержимому.
search?searchString=test&per_page=2&page=2, метод GET.
searhString - строка определяющая искомую текстовую последовательность. - Изменение/редактирование статьи.
article/номер_статьи?article_name=новый_заголовок&article_text=новый_текст, метод PATCH. - Удаление статьи по её ID
article/, метод DELETE.
Работа с изображениями. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
- Загрузка файла.
image, метод POST, в теле запроса, поля:- file_name
- file_desc
- file
- article
file - подгружаемый файл, article - id статьи, к которой будет привязано изображение.
- Список всех файлов.
image, метод GET. - Предоставление ссылки на файл по его ID.
image/, метод GET. - Замена существующего файла.
update-image/, метод POST, в теле запроса, поля:- file_name
- file_desc
- file
- Удаление файла по его ID.
image/, метод DELETE.
Работа с привязкой изображений. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
- Создание привязки.
link, метод POST, в теле запроса, поля:- image_file
- image_article
image_file - привязываемый файл, image_article - привязываемая статья.
- Список привязок.
link?image_file=1&image_article=1, метод GET, не обязательные параметры image_file - искомый привязанный файл, image_article - искомая привязанная статья. - Предоставление приязки по её ID.
link/, метод GET. - Замена существующей ссылки.
link/?image_file={id_нового_привязываемого_файла}&image_article={id_новой_привязываемой_статьи}, метод PATCH, в теле запроса, поля: - Удаление файла по его ID.
link/, метод DELETE.
Описание
API для управления контентом на сайте (Headless CMS)
Конвейеры
0 успешных
0 с ошибкой