camel-test3-17/camel-mybatis-yml/user-manage.camel.yaml

498 lines
15 KiB
YAML

- 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: extractPageCountParams
- 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}
- bean:
id: bean-7ad2
ref: requestProcessor
method: extractPageParams
- 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: extractSearchCountParams
- to:
id: to-9b02
uri: mybatis
parameters:
statement: countByAdvancedCriteria
statementType: SelectOne
- setProperty:
id: setProperty-c498
name: total
expression:
simple:
id: simple-216f
expression: ${body}
- bean:
id: bean-dd64
ref: requestProcessor
method: extractSearchParams
- 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
- restConfiguration:
component: platform-http
bindingMode: json
dataFormatProperty:
- key: prettyPrint
value: "true"
- key: dateFormatPattern
value: yyyy-MM-dd HH:mm:ss
- key: json.in.disableFeatures
value: WRITE_DATES_AS_TIMESTAMPS
- key: json.out.disableFeatures
value: WRITE_DATES_AS_TIMESTAMPS