Каков наилучший способ реализовать проверку того, зарегистрировано ли имя пользователя на стороне клиента, если я хочу сохранить мой API RESTful? - PullRequest
0 голосов
/ 15 марта 2020

Как видно из названия, я хочу, чтобы клиент мог проверить, зарегистрировано ли имя пользователя или электронная почта, прежде чем пользователь отправит регистрационную форму. Я рассматривал возможность использования конечной точки API, которая возвращала бы true или false для данного имени пользователя, но это кажется более RP C, чем RESTful. Это плохая практика иметь такую ​​конечную точку, если остальная часть моего API является RESTful? Если да, то как будет выглядеть подход RESTful к этой ситуации?

Ответы [ 2 ]

0 голосов
/ 15 марта 2020

Ключевой концепцией в REST является то, что все, что можно назвать, может быть ресурсом; это включает в себя процедуры. Если вы хотите иметь конечную точку, которая принимает имя пользователя в теле запроса и возвращает true / false, это прекрасно.

В качестве альтернативы, вы можете (или уже можете) рассматривать пользователя как ресурс. Возьмем для примера GitHub API: вы можете получить пользователя, отправив запрос GET на https://api.github.com/users/ {имя пользователя} . Если пользователь существует и, следовательно, имя пользователя занято, вы получите обратно 200 OK. Если пользователь не существует, вы получите 404 Not Found.

Если вы хотите проверить, было ли занято имя пользователя, вы можете просто отправить запрос на это имя пользователя, а затем проверить ответ. Если вы выберете этот подход, HEAD является более подходящим методом. HEAD по сути то же самое, что и GET, за исключением того, что тело ответа пусто. Поскольку вам не нужно тело, чтобы определить, существует ли пользователь, вы можете сэкономить чуть-чуть полосы пропускания с HEAD over GET.

0 голосов
/ 15 марта 2020

Вы можете сделать POST / регистрации и вернуть массив 400 с ошибками проверки и просто иметь клиентскую логи c, фильтрующую этот массив на предмет неверного имени пользователя. Другими словами, нет причин, по которым вы не можете попасть в конечную точку несколько раз. Это должно помочь отделить ваш UX от вашего API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...