首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mongoDB上收集和存储HTTP请求数据的最佳实践

在mongoDB上收集和存储HTTP请求数据的最佳实践
EN

Stack Overflow用户
提问于 2021-11-21 13:50:32
回答 1查看 191关注 0票数 0

我正在开发一个安卓/iOS应用程序,它的相对BackEnd是用Java开发的,使用Quarkus框架和mongoDB作为数据库。具体来说,我正在使用JAX使用RESTful网络服务开发后端。

我想记录与后端的所有交互,例如,应该收集mongoDB中的以下记录,以便进行POST调用:

即:

方法:"POST“

路径:"/shop/getShopbyID“

地址:"91.42.56.67“

主机:"www.example.com“

userAgent:"Mozilla/5.0 (WindowsNT10.0;Win64;x64) AppleWebKit/537.36 (KHTML,类似壁虎) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53“

body:“{”id“:”613f27459d26bf2e7a9f0a1b“}

我不是专家,所以我希望有收集这类数据的最佳做法。你能给我一些建议吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 05:52:05

这是一个非常广泛的问题,但是MongoDB作为文档存储可以很容易地处理您调用的案件。我想你的文件最后可能会.

代码语言:javascript
复制
{
  _id: ObjectId('1234567890'), // You always get a _id in a Mongo document
  method: "POST",
  path: "/shop/getShopbyID",
  address: "91.42.56.67",
  host: "www.example.com",
  userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53",
  body: "{\"id\":\"613f27459d26bf2e7a9f0a1b\"}", // Things can get funky here, is your content-type _always_ JSON?
  createdAt: ISODate("2017-04-27T04:26:42.709Z") // You probably want a timestamp
}

不过,你还是有选择的。你确定要储存身体吗?你确定身体总是JSON吗?即使这是真的,也会是“永远”吗?

如果它总是JSON,那么不要做任何其他的事情。没有什么可以阻止您将其作为一个直接的子文档存储在body中。

代码语言:javascript
复制
{
  _id: ObjectId('1234567890'), // You always get a _id in a Mongo document
  method: "POST",
  path: "/shop/getShopbyID",
  address: "91.42.56.67",
  host: "www.example.com",
  userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53",
  body: {
    id: "613f27459d26bf2e7a9f0a1b"
  },
  createdAt: ISODate("2017-04-27T04:26:42.709Z") // You probably want a timestamp
}

我也不确定如果您部署到在应用服务器前面放置代理之类的任何网络,您是否会得到"path“、"host”、"userAgent",尤其是"address“。如果代理没有传递这些东西,那么您最终得到的是来自代理的东西,而不是来自实际客户的东西。我想这是次要的话题。

底线是MongoDB,因为文档数据存储对非结构化数据做得很好。如果结构不一致,但是只是存储内容,那么查询body的内容会变得有点棘手吗?这是最简单的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70055132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档