Skip to content

zubovnkt/jsonplaceholder_proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JsonPlaceholder Proxy



О проекте

Проект релизует REST API для перенаправления запросов на https://jsonplaceholder.typicode.com/

Поддерживаются обработчики GET, POST, PUT, DELETE, проксирующие следующие запросы:

  • /api/posts/**
  • /api/users/**
  • /api/albums/**

Реализована базовая авторизация и ролевая модель.

Реализован эндпоинт для добавления пользователей:

  • /api/proxy/add_user/

Для хранения пользователей и ведения аудита используется база данных Postgres.

Используется кэширование для уменьшения числа запросов к jsonplaceholder.


Сборка и запуск

После запуска проект будет доступен по http://localhost:3333/jsonplaceholder_proxy/

С помощью Docker (рекомендуется):

В Dockerfile уже описаны все инструкции для сборки проекта. С помощью docker compose поднимается контейнер с базой данных и контейнер с приложением.

Всё можно запустить одной командой:

docker compose up

При первом запуске будут подкачаны необходимые образы для работы с Postgres и JDK, поэтому процесс может занять пару минут.

Доступ к базе данных внутри контейнера

Чтобы посмотреть, что лежит в БД контейнера, можно использовать следующие команды:

  • Для вывода в терминал записей из таблицы аудита:
docker exec -it jsonplaceholderproxy-db-1 psql -U postgres -d postgres -c "select * from jsonplaceholder_proxy.audit"
  • Для вывода сохраненных пользователей:
docker exec -it jsonplaceholderproxy-db-1 psql -U postgres -d postgres -c "select * from jsonplaceholder_proxy.users"



С помощью Maven:

  1. Устанавливаем и запускаем Postgres на локальной машине или где-нибудь еще.
  2. Настраиваем application.properties (нужно указать url, username, password от вашей БД)

Пример:

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=1234
spring.datasource.driver-class-name=org.postgresql.Driver
  1. Собираем проект:
mvn package
  1. Запускаем:
java -jar target/JsonPlaceholderProxy.jar



Тестирование API

Для тестирования api можно использовать Postman с заготовленными запросами. Для того, чтобы рабоать с Postman в браузере и он мог отправлять запросы на ваш localhost, установите Postman Agent.

Также для взаимодействия предусмотрена интеграция со Swagger UI, доступ по http://localhost:3333/jsonplaceholder_proxy/swagger-ui/index.html

Список пользователей по умолчанию (создаются в БД при запуске):

Name Password Roles
admin admin ROLE_ADMIN
users users ROLE_USERS
albums albums ROLE_ALBUMS
posts posts ROLE_POSTS
visitor visitor ROLE_POSTS_VIEWER, ROLE_ALBUMS_VIEWER
redactor redactor ROLE_POSTS_EDITOR, ROLE_ALBUMS_EDITOR

Для добавления новых пользователей используйте эндпоинт /api/proxy/add_user/

Пример тела запроса:

{
  "name": "new_user",
  "password": "new_user",
  "roles": "ROLE_POSTS_VIEWER, ROLE_POSTS_EDITOR"
}

About

REST API for proxying requests to jsonplaceholder.typicode.com with support for GET, POST, PUT, DELETE, authorization and role model.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors