Vibe.d оставшийся интерфейс маршрутизатора неверный путь - PullRequest
0 голосов
/ 09 ноября 2018

Я использую vibe.d для своего API отдыха. У меня есть два метода: addUser и getUser. Я использовал @path("/api/v3/users/"), поэтому теперь URL должен выглядеть следующим образом: http://127.0.0.1:8080/api/v3/users/user. Метод POST отлично работает с этим URL, но я не могу получить GET метод для работы.
Я использую тот же URL (? SomeParams), но сервер отвечает 404 . Я заметил, что когда я использую URL http://127.0.0.1:8080/api/v3/users/user/user,, он говорит «Неожиданно 'u» при преобразовании из строки типа в тип int », но если я добавлю что-то еще, кроме user после / снова 404.
Я уверен, что я, должно быть, упустил из виду какую-то глупую ошибку: D


Интерфейс:

@path("/api/v3/auth/") interface IUserAPI { /** Adding a user */ User addUser(string email, string firstName, string lastName, string password, string locale); /** Getting a user by id */ User getUser(int id); }


Класс:

/** User API */
class UserAPI : IUserAPI {
    /** Testing user */
    User user;
    /** Adding a user */
    @safe
    User addUser(string email, string firstName, string lastName, string password, string locale) {
        user = User(1, 0, email, firstName, lastName, password, locale, 0, false, "","", 0, "");
        return user;
    }
    /** Getting a user by id */
    @safe
    User getUser(int id) {
        logInfo(id.to!string);
        return user;
    }
}<br>

Регистрация остальных интерфейсов:

router.registerRestInterface(new UserAPI, MethodStyle.camelCase);
router.registerRestInterface(new LogsListAPI, MethodStyle.camelCase);

1 Ответ

0 голосов
/ 09 ноября 2018

После некоторых копаний я нашел свой ответ. Когда вы используете id в качестве параметра, он помещается непосредственно в URL. Нравится http://whatever.com/api/1(id)/user.

...