繁体   English   中英

Vibe.d Rest接口路由器错误的路径匹配

[英]Vibe.d rest interface router wrong path matching

我将vibe.d用于我的其余API。 我有两种方法: addUsergetUser 我使用了@path("/api/v3/users/") ,所以现在URL应该看起来像这样: http : //127.0.0.1 : 8080 @path("/api/v3/users/") POST方法可与此URL正常工作,但我无法使GET方法正常工作。
我使用相同的url(?someParams),但服务器使用404响应。 我注意到,当我使用URL http://127.0.0.1:8080/api/v3/users/user/user时 ,它会显示“从类型字符串转换为int类型时出现意外的'u'”,但是如果我/之后放用户以外的任何东西,它会再次抛出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);

经过一番挖掘,我找到了答案。 当您使用id作为参数时,它将直接将其放在URL中。 就像http://whatever.com/api/1(id)/user一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM