3个版本 (1个稳定版)
1.0.0 | 2024年6月28日 |
---|---|
0.2.0 | 2024年3月7日 |
0.1.0 | 2024年2月29日 |
#7 在 #func
每月下载 27次
在 5 crates 中使用
105KB
2K SLoC
Dce宏
api(): proc_macro_attribute
类似属性的宏,您可以使用它来定义api,它会自动绑定控制器函数。
参数
- path
&str
:
路由路径,如果省略,将是控制器函数名,例如 "part1/part2",支持如下表中的路径参数
示例 | 匹配 | 未匹配 | 描述
-
| - | - | - {id}/detail | 1/detail | 1
1/info | 必需参数,它可以是路径中的任何位置 fruit/{target?} | fruit
fruit/apple | vegetable | 可选参数,必须是路径的末尾 fruit/{targets*} | fruit
fruit/apple/banana | vegetable | 可选的vec参数,必须是路径的末尾 fruit/{targets+} | fruit/apple
fruit/apple/banana | fruit
vegetable | 必需的vec参数,必须是路径的末尾 fruit/{targets+}.|html | fruit/apple
fruit/apple.html | fruit/apple.json | 支持非后缀或 ".html" 后缀但不是其他 fruit/{targets+}.html|json | fruit/apple.html
fruit/apple/banana.json | fruit/apple | 支持 ".html" 或 ".json" 后缀但不是非或其他 -
serializer
Vec/struct
:
响应体数据序列化器,用于将DTO
序列化为sequences
,例如JsonSerializer{}
。如果没有定义,它将是UnreachableSerializer{}
。 -
deserializer
Vec/struct
:
请求体数据反序列化器,用于将sequences
反序列化为DTO
,例如JsonSerializer{}
。如果未定义,将是UnreachableSerializer{}
。 -
id
&str
:
API ID,有时您想使用较短的符号标记一个API,然后可以为此定义一个ID。默认值""
。 -
省略
bool
:
定义它是一个省略部分,例如api("home/index", 省略 = true)
表示您必须使用路径 "home" 来访问它,因为 "index" 部分是省略的。默认值false
。 -
重定向
&str
:
定义API应该重定向到另一个API。默认值""
。 -
name
&str
:
命名API。如果没有定义,它将是路径的最后部分。 -
无响应
bool
:
定义API不应响应,有时我们想要请求一个tcp或其他长连接类型的服务,但不需要响应。默认值false
。
参数的顺序自上而下,并且您可以使用赋值表达式样式定义它以打破固定顺序。
closed_err!(): proc_macro
一个类似于函数的宏,用于创建 DceErr
枚举。关闭错误表示只打印到控制台,但不向客户端响应特定的错误代码和信息。
参数
-
code
isize
:
错误代码,如果未指定,将是0
。 -
template
&str
:
错误消息或模板。 -
args
str-like[]
:
模板参数。
open_err!(): proc_macro
一个类似于函数的宏,用于创建 DceErr
枚举。公开错误表示将特定的错误代码和信息响应给客户端。参数与 closed_err!()
相同。
依赖项
~0.9–1.8MB
~38K SLoC