我尝试为我的web2py应用程序构建一个API。
# -*- coding: utf-8 -*-
auth.settings.allow_basic_login = True
@auth.requires_login()
@request.restful()
def api():
response.view = 'generic.json'
def GET(tablename, id):
if not tablename == 'division':
raise HTTP(400)
result = db(db.division.title == id).select()
return dict(result = result)
return locals()
但是每当我尝试通过curl连接时,我得到了这个答案:
You are being redirected <a href=\"/my_manager/login?_next=/my_manager/api/get_all_divisions/1.json\">here</a>
当我注释掉这一行时
@auth.requires_login()
everythink工作得很好。
我已经搜索过提示,但到目前为止没有找到任何有关此主题的有用信息。
非常感谢任何帮助。
答案 0 :(得分:0)
我知道这是一个非常古老的问题,但这个答案仍然可以帮助其他可能遇到同样问题的人:
在您的情况下,您正在使用需要用户登录的@auth.requires_login()
。
因此,您需要在调用此api时发送基本身份验证凭据。
最简单的卷曲调用可以是:
curl --user abc@example.com:abc123 http://localhost:8000/app_name/default/api/table_name.json
下面: