我正在使用metamug构建我的REST API。我写了一个查询来获取学生的姓名,提供了id。但是不起作用。给出204状态码作为响应。

<Request method="GET">
    <Desc> Get All Attendance </Desc>
    <Query>
        SELECT name from attendance
        where id= $id
    </Query>
</Request>

https://api.metamug.com/classroom/v1.0/attd?id=2
我的表查询如下
create table attendance (id int auto_increment primary key, name varchar(200))

谢谢。

最佳答案

您几乎可以看到$id是一个特殊变量,它在Item中用作Metamug请求类型的资源标识符(有关Collection/Item请求的更多信息,请参见Collection and Item RequestResource Identifier请参见The Resource Identifier),这里您在使用Collection时发出resource identifier请求。您需要将资源文件稍微修改为
在请求标记中添加以下属性。

item="true"

项目请求
<Request method="GET" item="true">
    <Desc> Get All Attendance </Desc>
    <Query>
        SELECT name from attendance
        where id= $id
    </Query>
</Request>

现在要为$id变量传递一个值,必须将其用作路径参数,而不是像查询字符串viz那样。
https://api.metamug.com/classroom/v1.0/attd/{value that you've to pass}
该值将由$id变量保存,因此在您的情况下,它将是
https://api.metamug.com/classroom/v1.0/attd/2

10-08 03:25