5 个版本
0.2.1 | 2022 年 6 月 1 日 |
---|---|
0.1.3 | 2022 年 4 月 11 日 |
0.1.2 | 2022 年 4 月 5 日 |
0.1.1 | 2022 年 4 月 5 日 |
0.1.0 | 2022 年 4 月 5 日 |
#1347 in 异步
用于 2 crates
175KB
4K SLoC
django-query
一组创建 Django 风格模拟端点的工具。基本用法是对您想模拟具有数据库的类型进行注解,派生必要的特性和创建 Endpoint
以提供可排序、可过滤的数据库。
示例用法
#[derive(Filterable, IntoRow, Sortable)]
struct Foo {
#[django(sort, op(lt, gt))]
a: i32,
#[django(sort, op(icontains, iexact))]
b: String,
}
#[tokio::test]
fn simple_test() {
let server = MockServer::start().await;
// create a Vec of struct Foo here, and optionally
// wrap it in an Arc.
// Now serve our mock database with wiremock
Mock::given(matchers::method("GET"))
.respond_with(Endpoint::new(foo_table, Some(&server.uri())));
// And now we can make requests from our code like
reqwest::get(&format!("{}?limit=5&offset=5&b__icontains=apple&ordering=-a"))
.await
.expect("error getting response")
.json()
.await
.expect("error parsing response");
// which will perform
// - pagination (5 responses, offset by 5)
// - filtering (only array members whose b member contains apple,
// case insensitively)
// - sorting (the results will be in decreasing order of the a
// member)
}
它与 persian-rug
和 clone-replace
集成,以提供可变对象的互连集合。
许可证
此代码可在 Apache-2.0 或 MIT 许可证 下使用。
依赖项
~12–16MB
~298K SLoC