发送mongodb过滤器字符串将http抛出到web api



我正在寻找一种方法,将mongodb过滤器从webapp抛出的http发送到webapi。

在webapp控制器中:序列化或反序列化,然后加密

var filter = Builder<BsonDocument>.filter.Eq("firstName", "Foo");

在web api控制器中:解密、序列化或反序列化

两者之间的逻辑正在发挥作用

我应该在web api控制器中作为查询接收它吗

[HttpGet]
public async Task<IActionResult> GetByQuery([FromQuery] string filter)
{
}

我不知道如何发送mongodb过滤器,我做了一些研究,但仍然无法使其工作。

我希望是清楚的!感谢

Mongodb 2.4.4
Asp.net核心2.0

更新
例如:
http://localhost:12345/api/v1/monsters/"此处的mongodb筛选器">

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);

为了回答您关于这是否是最好的方法的问题,我可能需要更多地了解您的应用程序体系结构和应用程序的复杂性。

最新更新