3 releases (1 stable)
1.0.0 | Jun 28, 2024 |
---|---|
0.2.0 | Mar 7, 2024 |
0.1.0 | Feb 29, 2024 |
#7 in #func
32 downloads per month
Used in 5 crates
105KB
2K
SLoC
Dce macros
api(): proc_macro_attribute
An attribute-like macro, you can use it to define api, it will auto bind the controller func.
Parameters:
- path
&str
:
The route path, it will be the controller func name if omitted, the style like "part1/part2", and support path params like the table below:
example | matched | unmatched | description
-
| - | - | - {id}/detail | 1/detail | 1
1/info | required param, it could be every place in path fruit/{target?} | fruit
fruit/apple | vegetable | optional param, it must be end of the path fruit/{targets*} | fruit
fruit/apple/banana | vegetable | optional vec param, it must be end of the path fruit/{targets+} | fruit/apple
fruit/apple/banana | fruit
vegetable | required vec param, it must be end of the path fruit/{targets+}.|html | fruit/apple
fruit/apple.html | fruit/apple.json | support non suffix or the ".html" suffix but not others fruit/{targets+}.html|json | fruit/apple.html
fruit/apple/banana.json | fruit/apple | support the ".html" or ".json" suffixes but not non or others -
serializer
Vec/struct
:
Response body data serializer, use to serialize theDTO
intosequences
, likeJsonSerializer{}
. It will beUnreachableSerializer{}
if not defined. -
deserializer
Vec/struct
:
Request body data deserializer, use to deserialize thesequences
intoDTO
, likeJsonSerializer{}
. It will beUnreachableSerializer{}
if not defined. -
id
&str
:
Api ID, sometimes you want to use the shorter sign to mark an api, then you can define an id for it. Default value""
. -
omission
bool
:
Define it is an omission part, for exampleapi("home/index", omission = true)
means you must use the path "home" to access it, because the "index" part is omission. Default valuefalse
. -
redirect
&str
:
Define the api should redirect to another one. Default value""
. -
name
&str
:
Name the api. It will be the last part of path if not defined. -
unresponsive
bool
:
Define the api should not response, sometimes we want request a tcp or another long connection type service but not need response. Default valuefalse
.
The params order is up to down, and you can use assignment expression style define it to break the fixed order.
closed_err!(): proc_macro
A function-like macro to new a DceErr
enum. Closed err means only print to console but not to response to client the specific error code and message.
Parameters:
-
code
isize
:
The error code, will be0
if not specified. -
template
&str
:
The error message or a template. -
args
str-like[]
:
Template args.
open_err!(): proc_macro
A function-like macro to new a DceErr
enum. Openly err means the specific error code and message will respond to client. Params same to closed_err!()
.
Dependencies
~0.9–1.8MB
~38K SLoC