代码之家  ›  专栏  ›  技术社区  ›  john

如何通过验证API验证某些输入参数?

  •  0
  • john  · 技术社区  · 10 年前

    我有一个API,我在其中对某些输入参数进行自己的验证。例如-

        public Builder(int clientId) {
            TestUtils.assertNonNegative(clientId, "ClientId");
            this.clientId = clientId;
        }
    
        public Builder setUserId(String userid) {
            TestUtils.assertNotNull(userid, "UserId");
            this.userid = userid;
            return this;
        }
    

    还有我的 assertNonNegative assertNotNull 中的方法 TestUtils 班级是这样的-

    public static void assertNonNegative(int val, String attr) {
        if (val <= 0) {
            s_logger.logError("Attribute = ", attr, " Value = ", val, " error=", attr, " cannot be negative or zero");
            throw new IllegalArgumentException(attr + " cannot be negative or zero");
        }
    }
    
    public static void assertNotNull(String value, String key) {
        if (value == null || value.isEmpty()) {
            s_logger.logError("Key = ", key, " Value = ", value, " error=", key,
                    " cannot be NULL or empty String");
            throw new IllegalArgumentException(key + " cannot be null OR empty");
        }
    }
    

    我想知道在任何开源项目中是否有任何可用的验证API,我可以使用它来替代我所拥有的上述内部方法?如果是的话,有人能举个例子说明我如何做到这一点吗?我仍然需要将同样的消息作为IllegalArgumentException返回

    1 回复  |  直到 10 年前
        1
  •  0
  •   maype    10 年前

    我不明白为什么要使用外部API来实现nullOrEmpty或非负数验证,但。。。

    如果您想直接在Java应用程序中验证数据库中用户的id

    这可能会让您感兴趣: http://www.mkyong.com/java/how-to-send-http-request-getpost-in-java/

    使用一点PHP并验证用户是否在数据库中。

    if(isset($_GET['idcmd']))
    {
        switch($_GET['idcmd'])
        {
            case 1:
                    if(isset($_POST['iduser']))
                    {
                        $sql= "SELECT idUser FROM users WHERE idUser=:iduser ";
                        $result = $db_conn->prepare($sql);
                        $result->bindParam(":iduser" ,$_POST['iduser']);
                        $result->execute();
    
                        $num=$result->fetchColumn();
                        if($num > 0){
                            echo "cool";
                        }else{
                            echo "nocool";
                        }
                    }
            break;
        }
    }
    

    现在,如果您向网址www.mydomain.com/myapi.php发出POST请求?idcmd=1,并得到响应,这意味着用户在数据库中。

    我希望这有帮助。