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

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