Expand description
§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 theDTOintosequences, likeJsonSerializer{}. It will beUnreachableSerializer{}if not defined. -
deserializer
Vec/struct:
Request body data deserializer, use to deserialize thesequencesintoDTO, 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 be0if 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!().