File tree Expand file tree Collapse file tree 4 files changed +35
-14
lines changed
Expand file tree Collapse file tree 4 files changed +35
-14
lines changed Original file line number Diff line number Diff line change @@ -121,19 +121,40 @@ openapi本地或者远程文件,支持格式:`yaml | json`
121121
122122### classMode
123123
124- 类型:` 'method ' | 'uri ' ` <br >
125- 默认值:` 'method ' `
124+ 类型:` 'rest ' | 'rpc ' ` <br >
125+ 默认值:` 'rest ' `
126126
127127类的生成方式。
128128
129- - ` method ` ,仅生成 ** get|post|put|patch|delete** 几个方法,uri作为第一个参数传入
130- - ` uri ` ,把 method+uri 拼接成一个方法,比如 ** POST /users/{id}** 会变成 ** postUsersById()**
129+ - ` rest ` ,仅生成 ** get|post|put|patch|delete** 几个方法,uri作为第一个参数传入
130+ - ` rpc ` ,把 method+uri 拼接成一个新方法。
131+
132+ ``` typescript
133+ const client = new OpenapiClient ();
134+
135+ // 有一个接口 -> GET /users/{id}
136+
137+ // rest模式
138+ await client .get (' /users/{id}' , { params: { id: 1 } });
139+ // rpc模式
140+ await client .getUsersById ({ params: { id: 1 } });
141+ ```
142+
143+ rest模式的优点:
144+
145+ - 运行时代码少且相对固定,几乎不受接口数量影响
146+ - 不会暴露接口名称,安全性较高
147+
148+ rpc模式的优点:
149+
150+ - 可以生成独立的注释文档
151+ - 可以利用tag生成生成分组,接口越多越方便
131152
132153### tagToGroup
133154
134155类型:` boolean ` <br >
135156默认值:` true `
136157
137- 根据Tag生成不同的分组,以类似 ** client.user.getUsers()** 这种方式调用。仅在 ` classMode=uri ` 场景下生效。
158+ 根据Tag生成不同的分组,以类似 ** client.user.getUsers()** 这种方式调用。仅在 ` classMode=rpc ` 场景下生效。
138159
139160如果没有提供tags,则默认合并到` default ` 分组
Original file line number Diff line number Diff line change @@ -24,13 +24,13 @@ export interface OpenapiClientConfig {
2424 */
2525 projectName ?: string ;
2626 /**
27- * 类的生成方式。默认值:`method `
28- * - `method `,仅生成 **get|post|put|patch|delete** 几个方法,uri作为第一个参数传入
29- * - `uri `,把 method+uri 拼接成一个方法,比如 **POST /users/{id}** 会变成 **postUsersById()**
27+ * 类的生成方式。默认值:`rest `
28+ * - `rest `,仅生成 **get|post|put|patch|delete** 几个方法,uri作为第一个参数传入
29+ * - `rpc `,把 method+uri 拼接成一个方法,比如 **POST /users/{id}** 会变成 **postUsersById()**
3030 */
31- classMode ?: 'method ' | 'uri ' ;
31+ classMode ?: 'rest ' | 'rpc ' ;
3232 /**
33- * 根据Tag生成不同的分组,以类似 **client.user.getUsers()** 这种方式调用。仅在 `classMode=uri ` 场景下生效。默认值:`true`
33+ * 根据Tag生成不同的分组,以类似 **client.user.getUsers()** 这种方式调用。仅在 `classMode=rpc ` 场景下生效。默认值:`true`
3434 *
3535 * 如果没有提供tags,则默认合并到`default`分组
3636 */
Original file line number Diff line number Diff line change @@ -10,12 +10,12 @@ export const generateTemplate = async (
1010 docs : OpenAPIV3 . Document ,
1111 config : Pick < OpenapiClientConfig , 'projectName' | 'classMode' | 'tagToGroup' > ,
1212) => {
13- const { projectName, classMode = 'method ' , tagToGroup = true } = config ;
13+ const { projectName, classMode = 'rest ' , tagToGroup = true } = config ;
1414 const className = `OpenapiClient${ upperFirst ( camelCase ( projectName ) ) } ` ;
1515 const metas = documentToMeta ( docs ) ;
1616
1717 const classTpl =
18- classMode === 'method '
18+ classMode === 'rest '
1919 ? generateMethodModeClass ( className , metas )
2020 : tagToGroup
2121 ? generateUriModelClassWithNamespace ( className , metas )
Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ test('完整的类型提示', async () => {
5858 } ,
5959 } ,
6060 } ) ;
61- await expect ( generateTemplate ( docs , { classMode : 'method ' } ) ) . resolves
61+ await expect ( generateTemplate ( docs , { classMode : 'rest ' } ) ) . resolves
6262 . toMatchInlineSnapshot ( `
6363 {
6464 "OpenapiClient": {
@@ -126,7 +126,7 @@ test('完整的类型提示', async () => {
126126 }
127127 ` ) ;
128128
129- await expect ( generateTemplate ( docs , { classMode : 'uri ' } ) ) . resolves
129+ await expect ( generateTemplate ( docs , { classMode : 'rpc ' } ) ) . resolves
130130 . toMatchInlineSnapshot ( `
131131 {
132132 "OpenapiClient": {
You can’t perform that action at this time.
0 commit comments