github.com/aacfactory/fns@v1.2.86-0.20240310083819-80d667fc0a17/docs/definition_zh.md (about)

     1  # 定义
     2  
     3  ------
     4  
     5  ## 服务
     6  
     7  服务是一组`fn`。且服务是`fns`的核心组件, 诸如数据库、消息队列都是服务, 服务的注解如下:
     8  
     9  | Annotation  | Type   | Required | Description                   |
    10  |-------------|--------|----------|-------------------------------|
    11  | service     | string | true     | 服务的名称                         |
    12  | title       | string | false    | 用于OAS的TAG标题                   |
    13  | description | string | false    | 用于OAS的TAG描述                   |
    14  | internal    | bool   | false    | 如果为真,则来自公网的请求无法直接访问           |
    15  
    16  
    17  
    18  ## 函数
    19  
    20  函数代表着业务, 第一个参数必须是 `context.Context`,第二个参数必须是 `struct`的值类型, 第一个返回值必须是 `pointer` 或者 `slice`,第二个返回值必须是 `errors.CodeError`, 函数的注解如下:
    21  
    22  | Annotation    | Type                               | Required | Description                 |
    23  |---------------|------------------------------------|----------|-----------------------------|
    24  | fn            | string                             | true     | 函数名称                        |
    25  | validate      | bool                               | false    | 是否开启自动参数校验                  |
    26  | authorization | bool                               | false    | 是否开启自动认证校验                  |
    27  | permission    | []roleName                         | false    | 是否开启权限校验,值为角色名,即哪些角色可以访问该函数 |
    28  | transactional | enum(sql, postgres, mysql, dgraph) | false    | 是否自动开启和管理数据库事务              |
    29  | deprecated    | bool                               | false    | 是否为弃用                       |
    30  | title         | string                             | false    | 用于OAS的请求标题                  |
    31  | description   | string                             | false    | 用于OAS的请求描述                  |
    32  | internal      | bool                               | false    | 与服务的效果一样                    |
    33  
    34  ## Context
    35  请求的上下文是一棵树,每个函数的上下文都附着在这棵树上。
    36  
    37  ```text
    38  |-- request context
    39      |-- fn context
    40      |-- fn context
    41          |-- fn context
    42  ```
    43  上下文中由 `current fn log`, `current service components`, `application id`, `service endpoint discovery` 和 `tracer`。
    44  
    45  举例:
    46  ```go
    47  log := service.GetLog(ctx)
    48  
    49  ```
    50  
    51  ## 参数字段注解
    52  
    53  | Tag      | Type   | Required | Description                                                        |
    54  |----------|--------|----------|--------------------------------------------------------------------|
    55  | json     | string | false    | json tag                                                           |
    56  | validate | string | false    | 校验器名, 由 [validator](https://github.com/go-playground/validator) 实现 |
    57  | message  | string | false    | 校验失败后的消息提示                                                         |
    58  
    59  ## Task
    60  任务是协程的代理,由fns的协程池管理。