我正在进行一个硕士论文项目,该项目使用openapi.yaml
文件自动生成REST-api web服务的测试-这使我能够托管gitlab的本地实例,这样我就可以在gitlab上运行我正在开发的工具。为此,我需要包含API调用文档的.yaml
文件。这样的文件可以在gitlab源代码中找到,但调用似乎不起作用。
一些呼叫工作,即:
http://localhost/api/v4/version
http://localhost/api/v4/users
http://localhost/api/v4/projects
http://localhost/api/v4/groups
all返回有意义的JSON。
问题是文档中的许多调用都不起作用(返回"404未找到"(,即:
http://localhost/api/v4/metadata
http://localhost/api/v4/projects/{id}/access_tokens
以及文档中指定的更多调用。
问题是,很多有效的调用都没有文档记录(除了"版本"调用之外,其他所有调用(。我确实试图寻找一个替代的openapi.yaml
文件,但收效甚微,我也很困惑为什么实际源代码中留下的文件不包含有意义的文档。我是不是忽略了什么?我目前正在使用poster并提供一个sudo身份验证令牌。
提前谢谢——我肯定忽略了什么!
目前,我试图通过谷歌搜索和浏览swaggerhub.com来寻找替代openapi.yaml
。我查看了gitlab的文档页面,但没有找到任何我没有的东西。
遗憾的是,在撰写本文时,GitLab并没有为其所有API提供OpenAPI规范。openapi.yml中只记录了API的一小部分。有一个悬而未决的问题正在跟踪这一改进。
目前,在线API文档将成为您使用GitLab API的最佳信息来源。
至于获取404
响应的问题,最常见的原因是您正在使用的凭据对您试图访问的项目/功能没有权限,或者您没有使用正确的身份验证方法。还要记住API的某些功能需要适当的许可授权。