我如何找到我的网站的所有API?

我如何找到我的网站的所有API?,api,go,endpoint,Api,Go,Endpoint,首席开发人员上周突然离开了我的公司。这些API没有文档记录。所以我正在努力发现每一个API是什么,然后在JIRA中记录它们。我们使用Golang作为后端。我尝试使用Charles Proxy、Fiddler、JMeter和Chromes inspector/network,但API没有显示出来。我有技术上的限制,我希望尽快找到我们所有的API。我的一个开发者告诉我下载并安装Goland。并指示我执行以下操作 “byte.*(正常|状态正常|成功) 和mux.和nomapi.来获取端点和使用它的人

首席开发人员上周突然离开了我的公司。这些API没有文档记录。所以我正在努力发现每一个API是什么,然后在JIRA中记录它们。我们使用Golang作为后端。我尝试使用Charles Proxy、Fiddler、JMeter和Chromes inspector/network,但API没有显示出来。我有技术上的限制,我希望尽快找到我们所有的API。我的一个开发者告诉我下载并安装Goland。并指示我执行以下操作

“byte.*(正常|状态正常|成功) 和
mux.
nomapi.
来获取端点和使用它的人,但不确定他们是否都使用mux和nomapi

使用goland,您可以轻松跳转到定义,这对于不熟悉的代码非常有用 并找到用法“

我不知道他说的是什么意思


有人能给我指出正确的方向吗?

这实际上取决于开发人员用来创建API的内容。你最好的选择是解析源代码,而不是像Chrome inspector这样的工具。您想要找到的是API处理程序的路由器。路由器基本上是一种将API端点(如
/API/v1/login/
)映射到处理调用的Go函数(适当地称为处理程序)的结构。但是,不幸的是,根据所使用的框架/库以及代码的结构,这可能在很多不同的地方。因此,虽然我不能给你一个明确的答案,但我可以给你一些建议

  • 您必须阅读Go代码。没办法。这并不难,所以不要害怕
  • 很可能存在一个或多个名为route.go或routes.go或router.go或类似文件。如果你发现类似的东西,先看看那里
  • 如果找不到任何路由,请使用Chrome inspector的网络选项卡查看前端的API调用,然后grep端点的代码。比方说,如果前端对
    http://api.domain.com/api/v1/accounts/
    ,在代码中搜索
    /accounts/
    /api/v1/
    ,如果这不适用于
    /api/
    。如果运气好的话,第二次或第三次搜索可能会让您找到应用程序的根路由器,您将能够从那里跟踪它
  • 如果找到一些路由(或路由处理程序),但不是所有路由,请在文件顶部查找包名称。如果它不是
    main
    ,特别是如果它被称为
    routes
    之类的名称,请查找导入此包的任何位置(只需在所有文件中grep显示包名,并忽略包声明本身)
  • 可能最流行的路由器库是。如果使用了
    github.com/gorilla/mux
    ,请检查代码中是否有任何引用。如果已使用,请查找其中包含
    HandleFunc
    的任何代码。这些将是路由器。如果根本没有使用路由器库,情况也是如此

  • 祝你好运。

    我愿意使用Python搜索我的API,如果这也是一个解决方案的话。那么这个问题真的太广泛了。看看报纸的主题是什么。是的,很抱歉让你失望,彼得,但这就是我的全部。不顾一切地寻找解决办法。我想我会把这个留在这里几个小时,直到有人知道在这种情况下该怎么办。我有一张赞成票,所以这显然在一些人的脑海中。这太棒了。非常感谢。