从 Swagger 请求公司列表 UI

Requesting list of Companies from Swagger UI

我开始了一个新项目,我试图从 REST API 获取数据。此 API 的文档可在此处获得:https://www.zefixintg.admin.ch/ZefixPublicREST/swagger-ui/index.html?configUrl=/ZefixPublicREST/v3/api-docs/swagger-config#/.

我对以下内容特别感兴趣:/api/v1/company/search。

很遗憾,我的以下查询无法收到 200 响应。相反,它总是导致授权错误 401:

import requests
from requests.auth import HTTPBasicAuth

params= {"activeOnly": TRUE}

response = requests.get(url='https://www.zefixintg.admin.ch/ZefixPublicREST/api/v1/company/search',
                        auth= HTTPBasicAuth('<user>', '<password>'),
                        params=params)

print(response.status_code)

我不确定我应该用什么其他方式来授权自己,因为我被告知我只需要 API 所有者提供给我的用户名和密码。我对这个用例使用的方法不正确吗?

感谢支持!

弗雷德

我找到了解决我自己问题的方法,其中包括将身份验证放入 header、对用户和密码进行编码以及 re-labeling 我的参数到有效负载的:

import requests
import json

url = "https://www.zefixintg.admin.ch/ZefixPublicREST/api/v1/company/search"

payload = json.dumps({
  "activeOnly": True,
  "legalSeatId": 460
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic <user/password>'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

请注意,我没有在查询中包含编码的 user/password。为了找到解决方案,它确实帮助我使用 Postman 来测试我的 api 请求。