Проектирование и стандартизация HTTP запросов

Всем привет! В процессе изучения веб разработки и работы над проектами подметил, что описание запросов со стороны сервера само по себе сложно. В процессе у меня возникли вопросы, как мне описывать запросы так, чтобы каждый запрос не выглядел по-своему и чтобы плохо описанные запросы не создавали путаницу в дальнейшей разработке.

Есть ли какие-либо паттерны (типа MVC для приложения в целом, на который я наседаю), которые полностью исчерпывают тему запросов так, чтобы клиент точно знал, что и как должно быть в запросе и в случае неверного запроса получал отчет о том, что не так, и чтобы сервер всегда был уверен, что в запросе есть нужные данные, либо не получал его, если их нет?

Заранее спасибо за ответы. Вообще сейчас я сосредоточился в основном на NodeJS, но буду рад и более общим решениям.


Ответы (1 шт):

Автор решения: Трипольский Пётр

Попробуйте использовать nestjs

Метод контроллера MVC

@Post()
create(@Body() createUserDto: CreateUserDto) {
  return 'This action adds a new user';
}

Объект DTO, описывающий BODY запроса

import { IsEmail, IsNotEmpty } from 'class-validator';

export class CreateUserDto {
  @IsEmail()
  email: string;

  @IsNotEmpty()
  password: string;
}

Ответ, если BODY не по шаблону

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": ["email must be an email"]
}
→ Ссылка