API: GET-запрос с идентификатором пользователя или именем + регионом - PullRequest
0 голосов
/ 12 декабря 2018

В моем API у меня есть GET / users /, который дает мне массив всех документов в users-collection.И у меня есть GET / users /: user_id, который дает мне пользователя.Я также хочу иметь GET /users/name.region, который дает мне одного пользователя.Возможно ли это?

Нужно ли использовать параметры запроса, такие как GET / users / name = "Joe" ®ion = "US"?Как бы мне это реализовать?В других конечных точках или есть способ проверить, является ли это user_id или комбинацией имени и региона?

Как-то так?

if !req.params{
model.find({"name":query.params.name, "region": query.params.region})}
else
model.find({"user_id": req.params.user_id}) 

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Обычно наличие чего-то отличного от GET users/:id нарушает большинство популярных руководств REST, таких как Спецификации имени ресурса Google .

Что было бы намного лучше, так это иметь конечную точку GET users/search, которая принимает различные параметры запроса, такие как name и region, и дает желаемый запрос пользователей.

0 голосов
/ 12 декабря 2018

Может быть, вы можете сделать это по тому же маршруту ...

Пример

const givenId = req.params.user_id;
const parts   = givenId.split('.');

if (parts.length === 2) {
    const name   = parts[0];
    const region = parts[1];
} else { 
    const userId = givenId;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...