Соглашения об именах моделей веб-API c # - PullRequest
0 голосов
/ 10 июля 2019

Я создаю новый проект C # Web API, и я хочу следовать лучшим соглашениям об именах для своих моделей.

Я видел в других проектах Microsoft, что для каждого метода у вас есть две модели: у той, которая получает данные в методе, есть suffix с RequestModel, например, если у меня есть Employee method для для получения отпусков сотрудников они будут использовать EmployeeHolidayRequestModel, а тот, который будет использоваться для возврата данных из API, имеет suffix с ResponseModel, поэтому в данном примере модель будет EmployeeHolidayResponseModel.

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

Я использую Dapper как мой ORM. Я использовал следующую структуру при создании своих моделей:

enter image description here

В папке

Entities я размещаю классы POCO, которые точно отображают структуру таблицы моей БД. И я использую эти классы, когда я собираюсь создать новую сущность и сохранить ее в БД, или когда я собираюсь обновить ее и т. Д. Эти модели я никогда не использую для передачи данных из API или для данных, предоставляемых API.

Но, например, у меня есть несколько хранимых процедур в моей БД, которые не обязательно отображаются в таблицу, а результат - в пользовательскую модель.

Мой первый вопрос: должен ли я создать класс, который отобразит соответствующие результаты в мою папку Entity или в мою папку Custom ?

Поскольку, исходя из вышеприведенного вопроса, у меня есть несколько методов в моих репозиториях (, как на изображении ниже ), где я использую в качестве mapping модели наименование ResponseModel условные классы.

enter image description here

Должен ли я всегда использовать Entities в качестве классов сопоставления Database Sp? Если это так, то я должен использовать библиотеку типа Mapper для преобразования из Entity в класс суффиксов ResponseModel, чтобы вернуть данные из API правильно?

Последний вопрос, сейчас я использую папку Custom для создания Request и Response моделей API, а затем у меня есть подпапки в зависимости от таблицы или сущности, к которой относятся эти модели относится к. В случае, если у меня есть API, который не возвращает точную сущность, но он будет возвращать смесь данных, например, данные отчета, в которых вы смешиваете данные Сотрудника с выходным с выходным, хорошо ли это создавать только в корне пользовательской папки классы Response и Request модели? Я надеюсь, что это само объяснено.

...