Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 2.39 KB

File metadata and controls

32 lines (25 loc) · 2.39 KB

BACKEND CODE RULE

CONTROLLERS

  1. Контроллер принимает/возвращает только сущности.
  2. Использвоать DTO для получения и отправки запроса.
  3. Не использовать название CRUD операций в контроллере, такие как : add, remove и прочее.
  4. В пути вместо _ использовать -.
  5. При необходимости создания сортировочных/отборочных контроллеров параметры передавать через RequestParam.
  6. При изменении PUT MAPPING всей сущности возвращать HTTP STATUS NO CONTENT(204).
  7. При изменении PATCH MAPPING полей сущности (В запросе должны быть перечислены только поля, подлежащие изменению) возвращать измененную сущность и HTTP STATUS OK(200).
  8. При добавлении POST MAPPING сущности возвращать путь к сущности в заголовке Location ("/api/entity/{id}") и HTTP STATUS CREATED(201).
  9. При удалении DELETE MAPPING сущности возвращать HTTP STATUS NO CONTENT(204).
  10. При поиске GET MAPPING сущности возвращать сущность и HTTP STATUS OK(200).

SERVICES

  1. Публичный метод сервиса всегда должен что-то возвращать.
  2. Сервис должен принимать/возвращать сущность.
    Пример
    Имеется RoleService, контракт его метода add:
    Role add(Role role);
  3. На уровне сервиса происходит валидация сущностей.

REPOSITORIES

  1. При возвращении одиночной сущности в репозитории возвращается Optional.
  2. Нативные запросы осуществлять через HSL.
  3. Нативные запросы, оформленные с помощью nativeQuery = true необходимо отбражать с помощью CriteriaBuilder.

MAPPERS

  1. Перевод сущности в DTO и обратно происходит на уровне контроллеров.