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 операции для статей (создание, чтение, обновление, удаление).

Указания к установке:

  1. Загрузить файл с zip архивом проекта из GitFlic и распаковать его.
  2. Создать пустую базу данных
  3. Зайти в папку проекта
  4. Установить Composer с сайта https://getcomposer.org/
  5. Запустить команду «Composer update»
  6. Переименовать файл env.example в файл .env
  7. Открыть переименованный файл и задать параметры созданной ранее базы данных.
    Для PostgreSQL:
    DB_CONNECTION=pgsql
    DB_HOST=адрес_сервера_БД
    DB_PORT=5432
    DB_DATABASE=имя_базы_данных
    DB_USERNAME=имя_пользователя
    DB_PASSWORD=пароль
  8. Запустить генератор ключа “php artisan key:generate”
  9. В случае необходимости, создать на сервере симлинк на папку public проекта
  10. Сделать симлинк на папку с сохраненными изображениями: php artisan storage:link
  11. Запустить миграцию и первоначальное заполнение базы данных при помощи команды «php artisan migrate:fresh –seed»
  12. Получеить токены безопасности: php artisan passport:install
  13. Прописать токены безопасности в файл конфигурации .env PASSPORT_PERSONAL_ACCESS_CLIENT_ID=“ид_токена” PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=“токен”

Интерфейс:

Регистрация и авторизация.
  1. Регистрация.
    register, метод POST, в теле запроса, поля:
    • name
    • email
    • password
    • r_password
  2. Авторизация.
    login, метод POST, в теле запроса, поля:
    • email
    • password
  3. Получение инфрмации об авторизованном пльзователе.
    get-user, метод GET, в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен
Работа со статьями. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
  1. Создание статьи.
    article, метод POST, в теле запроса, поля:
    • article_name
    • article_text
  2. Просмотр всех статей.
    article?per_page=2&page=2, метод GET.
    per_page и page - необязательные параметры, определяющие, соответственно, число статей на странице (по умолчению = 10) и номер страницы.
  3. Просмотр статьи по её ID
    article/, метод GET.
  4. Поиск статьи по её автору/заголовку/содержимому.
    search?searchString=test&per_page=2&page=2, метод GET.
    searhString - строка определяющая искомую текстовую последовательность.
  5. Изменение/редактирование статьи.
    article/номер_статьи?article_name=новый_заголовок&article_text=новый_текст, метод PATCH.
  6. Удаление статьи по её ID
    article/, метод DELETE.
Работа с изображениями. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
  1. Загрузка файла.
    image, метод POST, в теле запроса, поля:
    • file_name
    • file_desc
    • file
    • article
      file - подгружаемый файл, article - id статьи, к которой будет привязано изображение.
  2. Список всех файлов.
    image, метод GET.
  3. Предоставление ссылки на файл по его ID.
    image/, метод GET.
  4. Замена существующего файла.
    update-image/, метод POST, в теле запроса, поля:
    • file_name
    • file_desc
    • file
  5. Удаление файла по его ID.
    image/, метод DELETE.
Работа с привязкой изображений. (в заголовке, поле: Authorization, с содержанием "Bearer "+полученный при регистрации или авторизации токен)
  1. Создание привязки.
    link, метод POST, в теле запроса, поля:
    • image_file
    • image_article
      image_file - привязываемый файл, image_article - привязываемая статья.
  2. Список привязок.
    link?image_file=1&image_article=1, метод GET, не обязательные параметры image_file - искомый привязанный файл, image_article - искомая привязанная статья.
  3. Предоставление приязки по её ID.
    link/, метод GET.
  4. Замена существующей ссылки.
    link/?image_file={id_нового_привязываемого_файла}&image_article={id_новой_привязываемой_статьи}, метод PATCH, в теле запроса, поля:
  5. Удаление файла по его ID.
    link/, метод DELETE.
Описание

API для управления контентом на сайте (Headless CMS)

Конвейеры
0 успешных
0 с ошибкой