- rest: id: rest-523c description: 用户服务 path: /api/user consumes: application/json produces: application/json bindingMode: json delete: - id: delete-4f94 description: 删除用户 path: /deleteUser to: direct:users-delete get: - id: get-a3dc description: 获取所有用户 path: /users to: direct:users-findAll - id: get-0563 description: 分页查询用户 path: /search to: direct:users-findByPage - id: get-f4cc description: 高级搜索用户 path: /advanced-search to: direct:users-advancedSearch - id: get-88cb description: 获取单个用户 path: /users/{id} to: direct:users-findById post: - id: post-634e description: 创建用户 path: /createUser to: direct:users-create put: - id: put-ba5d description: 更新用户 path: /updateUser to: direct:users-update - route: id: users-findAll from: id: from-cfa1 uri: direct parameters: name: users-findAll steps: - to: id: to-00d4 uri: mybatis parameters: statement: findAll statementType: SelectList - route: id: users-findByPage from: id: from-da95 uri: direct parameters: name: users-findByPage steps: - bean: id: bean-4910 ref: requestProcessor method: extractPageParams - log: id: log-ea02 message: ${body} - to: id: to-1dbc uri: mybatis parameters: statement: countByFilters statementType: SelectOne - setProperty: id: setProperty-7d21 name: total expression: simple: id: simple-fc6b expression: ${body} - log: id: log-21e9 message: ${body} - to: id: to-d904 uri: mybatis parameters: statement: findByPage statementType: SelectList - bean: id: bean-7077 ref: paginationAggregator method: createPageResponse - route: id: users-advancedSearch from: id: from-220a uri: direct parameters: name: users-advancedSearch steps: - bean: id: bean-8578 ref: requestProcessor method: extractSearchParams - to: id: to-9b02 uri: mybatis parameters: statement: countByAdvancedCriteria statementType: SelectOne - setProperty: id: setProperty-c498 name: total expression: simple: id: simple-216f expression: ${body} - to: id: to-ef07 uri: mybatis parameters: statement: advancedSearch statementType: SelectList - bean: id: bean-19e9 ref: paginationAggregator method: createPageResponse - route: id: users-create from: id: from-46f9 uri: direct parameters: name: users-create steps: - bean: id: bean-8ede ref: requestProcessor method: prepareEntity(${exchange}, com.example.model.User.class) - setProperty: id: setProperty-2fb4 name: newUser expression: simple: id: simple-a367 expression: ${body} - setBody: id: setBody-e1d2 expression: simple: id: simple-1a67 expression: ${exchangeProperty.newUser.username} - to: id: to-74f8 uri: mybatis parameters: statement: findByUsername statementType: SelectOne - choice: id: choice-575b when: - id: when-ae2c expression: simple: id: simple-7e4c expression: ${body} != null steps: - bean: id: bean-9cf8 ref: requestProcessor method: createConflictResponse('用户名') - bean: id: bean-c294 ref: requestProcessor method: setStatusCode(${exchange}, 400) - stop: id: stop-a178 otherwise: id: otherwise-81bd - setBody: id: setBody-3741 expression: simple: id: simple-29c3 expression: ${exchangeProperty.newUser.email} - choice: id: choice-2dc4 when: - id: when-3dec expression: simple: id: simple-7e1a expression: ${body} != null steps: - bean: id: bean-28e7 ref: requestProcessor method: createConflictResponse('邮箱') - bean: id: bean-4340 ref: requestProcessor method: setStatusCode(${exchange}, 400) - stop: id: stop-0d92 otherwise: id: otherwise-abb1 - setBody: id: setBody-689f expression: simple: id: simple-9d54 expression: ${exchangeProperty.newUser} - to: id: to-791f uri: mybatis parameters: statement: insert statementType: Insert - bean: id: bean-84ae ref: paginationAggregator method: setCreatedResponse - route: id: users-findById from: id: from-2e4c uri: direct parameters: name: users-findById steps: - bean: id: bean-cf1a ref: requestProcessor method: extractId - to: id: to-32ad uri: mybatis parameters: statement: findById statementType: SelectOne - choice: id: choice-d9df when: - id: when-128a expression: simple: id: simple-c384 expression: ${body} == null steps: - bean: id: bean-5088 ref: requestProcessor method: createNotFoundResponse('用户') - bean: id: bean-3cdb ref: requestProcessor method: setStatusCode(${exchange}, 404) - route: id: users-update from: id: from-ec3c uri: direct parameters: name: users-update steps: - bean: id: bean-bb37 ref: requestProcessor method: prepareEntityWithId(${exchange}, com.example.model.User.class) - setProperty: id: setProperty-54ac name: userToUpdate expression: simple: id: simple-c948 expression: ${body} - setBody: id: setBody-6bdf expression: simple: id: simple-3926 expression: ${exchangeProperty.userToUpdate.id} - to: id: to-12aa uri: mybatis parameters: statement: findById statementType: SelectOne - choice: id: choice-9afb when: - id: when-78d0 expression: simple: id: simple-cba3 expression: ${body} == null steps: - bean: id: bean-3951 ref: requestProcessor method: createNotFoundResponse('用户') - bean: id: bean-736f ref: requestProcessor method: setStatusCode(${exchange}, 404) - stop: id: stop-b144 otherwise: id: otherwise-fff6 - setBody: id: setBody-5060 expression: simple: id: simple-19e8 expression: ${exchangeProperty.userToUpdate.username} - to: id: to-86f9 uri: mybatis parameters: statement: findByUsername statementType: SelectOne - choice: id: choice-9a9e when: - id: when-984c expression: simple: id: simple-0f1e expression: >- ${body} != null && ${body.id} != ${exchangeProperty.userToUpdate.id} steps: - bean: id: bean-6cd0 ref: requestProcessor method: createConflictResponse('用户名') - bean: id: bean-7531 ref: requestProcessor method: setStatusCode(${exchange}, 400) - stop: id: stop-efb4 otherwise: id: otherwise-873f - setBody: id: setBody-6104 expression: simple: id: simple-6932 expression: ${exchangeProperty.userToUpdate.email} - choice: id: choice-2245 when: - id: when-1e41 expression: simple: id: simple-fefd expression: ${body} != null && ${body} != '' steps: - to: id: to-9a1f uri: mybatis parameters: statement: findByEmail statementType: SelectOne - choice: id: choice-a8e9 when: - id: when-1af0 expression: simple: id: simple-a31c expression: >- ${body} != null && ${body.id} != ${exchangeProperty.userToUpdate.id} steps: - bean: id: bean-dbf9 ref: requestProcessor method: createConflictResponse('邮箱') - bean: id: bean-5d1e ref: requestProcessor method: setStatusCode(${exchange}, 400) - stop: id: stop-d8c7 otherwise: id: otherwise-08c3 otherwise: id: otherwise-14ba - setBody: id: setBody-b971 expression: simple: id: simple-9902 expression: ${exchangeProperty.userToUpdate} - to: id: to-9ab6 uri: mybatis parameters: statement: update statementType: Update - setBody: id: setBody-6a3d expression: simple: id: simple-e68a expression: ${exchangeProperty.userToUpdate.id} - to: id: to-dbc1 uri: mybatis parameters: statement: findById statementType: SelectOne - route: id: users-delete from: id: from-9cad uri: direct parameters: name: users-delete steps: - bean: id: bean-f19e ref: requestProcessor method: extractId - to: id: to-3e49 uri: mybatis parameters: statement: findById statementType: SelectOne - choice: id: choice-d3c6 when: - id: when-8821 expression: simple: id: simple-ede8 expression: ${body} == null steps: - bean: id: bean-b491 ref: requestProcessor method: createNotFoundResponse('用户') - bean: id: bean-6f92 ref: requestProcessor method: setStatusCode(${exchange}, 404) otherwise: id: otherwise-3344 steps: - setProperty: id: setProperty-877f name: userId expression: simple: id: simple-ceaf expression: ${body.id} - setBody: id: setBody-0b67 expression: simple: id: simple-e076 expression: ${exchangeProperty.userId} - to: id: to-789b uri: mybatis parameters: statement: deleteById statementType: Delete - bean: id: bean-8272 ref: paginationAggregator method: setDeletedResponse