发送 mongodb 过滤器字符串将 http 发送到网络 api
Send mongodb filter string threw http to the web api
我正在寻找一种方法来将 mongodb 过滤器从 webapp through http 发送到网络 api。
在 webapp 控制器中:序列化或反序列化然后加密
var filter = Builder<BsonDocument>.filter.Eq("firstName", "Foo");
在 Web api 控制器中:解密、序列化或反序列化
逻辑正常
我应该在 Web api 控制器中将其作为查询接收吗
[HttpGet]
public async Task<IActionResult> GetByQuery([FromQuery] string filter)
{
}
我不确定如何发送 mongodb 过滤器,我做了一些研究,但仍然无法正常工作。
希望清楚!谢谢
Mongodb2.4.4
Asp.net核心2.0
更新
例如,我尝试做的是:
http://localhost:12345/api/v1/monsters/"the mongodb filter here"
或
http://localhost:12345/api/v1/monsters?filter= "mongodb 在此处过滤为查询字符串"
如何或我必须做什么以及发送 MongoDB 过滤器的最佳方式是什么。我应该有一个过滤器定义并序列化为 json 还是反之亦然,我正在寻找最好的方法。
要获得 URL,我必须检查 MongoDB Json Generation。
var json = filter.Render(BsonDocumentSerializer.Instance, BsonSerializer.SerializerRegistry).ToString();
var url = $"http://localhost:12345/api/v1/monsters?filter={WebUtility.UrlEncode(json)}";
然后在你的 API:
var mongoFilter = (FilterDefinition<BsonDocument>)WebUtility.UrlDecode(filter);
为了回答您关于这是否是最佳方法的问题,我可能需要更多地了解您的应用程序架构和应用程序的复杂性。
我正在寻找一种方法来将 mongodb 过滤器从 webapp through http 发送到网络 api。
在 webapp 控制器中:序列化或反序列化然后加密
var filter = Builder<BsonDocument>.filter.Eq("firstName", "Foo");
在 Web api 控制器中:解密、序列化或反序列化
逻辑正常
我应该在 Web api 控制器中将其作为查询接收吗
[HttpGet]
public async Task<IActionResult> GetByQuery([FromQuery] string filter)
{
}
我不确定如何发送 mongodb 过滤器,我做了一些研究,但仍然无法正常工作。
希望清楚!谢谢
Mongodb2.4.4
Asp.net核心2.0
更新
例如,我尝试做的是:
http://localhost:12345/api/v1/monsters/"the mongodb filter here"
或
http://localhost:12345/api/v1/monsters?filter= "mongodb 在此处过滤为查询字符串"
如何或我必须做什么以及发送 MongoDB 过滤器的最佳方式是什么。我应该有一个过滤器定义并序列化为 json 还是反之亦然,我正在寻找最好的方法。
要获得 URL,我必须检查 MongoDB Json Generation。
var json = filter.Render(BsonDocumentSerializer.Instance, BsonSerializer.SerializerRegistry).ToString();
var url = $"http://localhost:12345/api/v1/monsters?filter={WebUtility.UrlEncode(json)}";
然后在你的 API:
var mongoFilter = (FilterDefinition<BsonDocument>)WebUtility.UrlDecode(filter);
为了回答您关于这是否是最佳方法的问题,我可能需要更多地了解您的应用程序架构和应用程序的复杂性。