#c# #entity-framework
#c# #entity-framework
Вопрос:
Я создаю веб-службу для аутентификации пользователя. (Я новичок в c #, использующий entity framework core)
[HttpPost, Route("login")]
public async Task<ActionResult<Usuario>> Login([FromBody] User user)
{
}
у моего пользователя модели есть следующие поля:
{
name,
password,
phone,
email
}
Я не знаю, как указать, чтобы со стороны клиента мои пользователи могли видеть поля, которые должен получать мой веб-сервис, и когда я использую какой-либо плагин для документирования моего API, было ясно видно, что мне нужно только name
для отправки и password
только.
Я думаю о чем-то подобном, я надеюсь заставить себя понять:
public async Task<ActionResult<Usuario>> Login([FromBody] string email, [FromBody] string password)
таким образом, когда API задокументирован, я хотел бы, чтобы было понятно, что вам нужно отправлять email
и password
только
и так со стороны клиента
{"password": "212346", "email": "myemail@hotmail.com" }
отправляется
Ответ №1:
Ваша модель представления должна содержать ТОЛЬКО поля, требуемые для каждого метода API. Если в вашем запросе есть поля, которые не являются обязательными, их не должно быть в теле метода. Если вы используете что-то вроде Swagger для документирования вашего API, то он покажет только поля, требуемые для каждого метода.
Обычно я слышу подобные вопросы, когда разработчик пытается использовать DTO или даже объект базы данных в качестве модели представления (оба из которых являются неправильным использованием).
Я удостоверяюсь, что каждый метод API имеет разную модель представления (даже если содержимое идентично), потому что в большинстве случаев, в конечном итоге, они будут разными, но не всегда в начале.