【问题标题】:How can I find all the APIs of my website? [closed]如何找到我网站的所有 API? [关闭]
【发布时间】:2018-09-11 14:43:39
【问题描述】:

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

"byte.*(okay|StatusOK|Successful) 和mux.nomapi. 来获取端点和正在使用它的端点,但不确定它们是否都使用mux 和nomapi

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

不确定他所说的所有这些是什么意思。

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

【问题讨论】:

  • 如果那里也有解决方案,我愿意使用 Python 搜索我的 API。
  • 那么这个问题实在是太宽泛了。查看help center 中的主题。
  • 是的,很抱歉让你失望了,彼得,但我只有这些。迫不及待地想找到解决办法。我想我会把它留在这里几个小时,直到有人出现知道在这种情况下该怎么做。我有一个赞成票,所以这显然是某些人的想法。

标签: api go endpoint


【解决方案1】:

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

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

祝你好运。

【讨论】:

  • 这很棒。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 2011-12-25
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多