Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是一个设计糟糕的API吗?_Javascript_Python_Api - Fatal编程技术网

Javascript 这是一个设计糟糕的API吗?

Javascript 这是一个设计糟糕的API吗?,javascript,python,api,Javascript,Python,Api,我试图使用geni.com API,但我对得到的响应感到困惑 具体来说,这一点:https://www.geni.com/platform/developer/help/api?path=user%2Fmanaged-配置文件和版本=1 成功使用API密钥对自己进行授权后,我得到的响应取决于我调用的内容 如果我按如下方式使用Python,那么我将得到一个完整格式的HTML文档 Python snippet URLManagedProfiles = "https://www.geni.com/ap

我试图使用geni.com API,但我对得到的响应感到困惑

具体来说,这一点:https://www.geni.com/platform/developer/help/api?path=user%2Fmanaged-配置文件和版本=1

成功使用API密钥对自己进行授权后,我得到的响应取决于我调用的内容

如果我按如下方式使用Python,那么我将得到一个完整格式的HTML文档

Python snippet
URLManagedProfiles = "https://www.geni.com/api/user/managed-profiles"
r = requests.get(URLManagedProfiles)
如果我转到我的web浏览器,登录geni.com,然后将这个URL粘贴到浏览器栏中,我会得到一个纯json的GUID和名称列表,这就是我想要的

Browser address bar
https://www.geni.com/api/user/managed-profiles

{
results: [
{
guid: "6000000003440360004",
name: "xxxxx"
},
{
guid: "6000000004787958755",
name: "xxxxx"
},
{
guid: "6000000004828562356",
name: "xxxxx"
},
{
guid: "6000000004823232333",
etc
现在,网站上的文档似乎建议我应该使用javascript。。。。但我几乎没有接触过这种情况

问题:

这个API是以某种奇怪的方式构造的吗?我知道我们看不到它的背后是什么,但它的行为方式只是。。。出乎意料

我是否过于乐观地希望能够通过Python使用API

在成功授权自己使用API密钥之后


这里没有身份验证。您将获得登录页面的HTML。

如果它是rest api,您应该能够将其与任何语言一起使用。您必须给出api响应的示例。好的,添加了broswer响应的示例。如何在Python代码中执行身份验证?请特别重复介绍教程。您要求进行设计审查,这超出了堆栈溢出的范围。@user3840170好吧,这可能就是问题所在。它没有;我觉得我调用一个API、获取令牌和所有东西都不对,但是不要;我们不必使用它们来进行进一步的登录后呼叫。但是API文档没有解释如何做到这一点。所以这是一个设计古怪的API吗?但我不是。使用Chrome,我前往geni.com。成功登录。现在打开一个新选项卡,或者简单地用以下内容替换URL:我得到一个纯JSON响应。您的Python代码和web浏览器不共享身份验证信息。就API而言,当您使用该Python代码发出请求时,您没有登录。您需要在Python代码中对自己进行身份验证。同意,我直觉上是正确的。但API文档中没有对此做出规定。这就是为什么我很难理解它是如何发生的;它应该在非javascript方法中工作。它没有明确的文档记录,但是您可以从PHP示例中看到,您需要添加一个access\u token查询字符串参数来验证请求:
URLManagedProfiles = "https://www.geni.com/api/user/managed-profiles"
r = requests.get(URLManagedProfiles)