|
|
@@ -21,9 +21,19 @@
|
|
|
<h4>🛠️ 接口逻辑 (UPSERT 模式)</h4>
|
|
|
<ol>
|
|
|
<li>根据 <code>mobile</code> 查找用户。</li>
|
|
|
- <li><strong>新建用户</strong>:若用户不存在,必须提供 <code>name</code> 和 <code>english_name</code>,否则报错。</li>
|
|
|
- <li><strong>已有用户</strong>:若提供了 <code>name</code> 或 <code>english_name</code> 且不为空,则更新用户信息;否则保留原值。</li>
|
|
|
- <li>将该用户与当前应用建立映射关系(绑定 <code>mapped_key</code> 和 <code>mapped_email</code>)。</li>
|
|
|
+ <li><strong>新建用户</strong>:
|
|
|
+ <ul>
|
|
|
+ <li>必须提供 <code>name</code>(姓名)。</li>
|
|
|
+ <li><code>english_name</code>(英文名)可选,如未提供会自动生成并确保唯一性。</li>
|
|
|
+ </ul>
|
|
|
+ </li>
|
|
|
+ <li><strong>已有用户</strong>:
|
|
|
+ <ul>
|
|
|
+ <li><strong>不允许修改</strong>:<code>name</code>、<code>mobile</code>、<code>english_name</code> 等用户基本信息。</li>
|
|
|
+ <li><strong>可以修改</strong>:映射信息(<code>mapped_key</code>、<code>mapped_email</code>、<code>is_active</code>)。</li>
|
|
|
+ </ul>
|
|
|
+ </li>
|
|
|
+ <li>将该用户与当前应用建立或更新映射关系(绑定 <code>mapped_key</code> 和 <code>mapped_email</code>)。</li>
|
|
|
</ol>
|
|
|
</div>
|
|
|
|
|
|
@@ -44,16 +54,16 @@
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
<tr><td><code>mobile</code></td><td>string</td><td><span class="tag-required">是</span></td><td>用户手机号(平台唯一标识)</td></tr>
|
|
|
- <tr><td><code>name</code></td><td>string</td><td><span class="tag-conditional">条件</span></td><td>姓名(新建用户必填)</td></tr>
|
|
|
- <tr><td><code>english_name</code></td><td>string</td><td><span class="tag-conditional">条件</span></td><td>英文名(新建用户必填,全局唯一)</td></tr>
|
|
|
- <tr><td><code>mapped_key</code></td><td>string</td><td><span class="tag-optional">否</span></td><td>外部系统中的用户ID(在该应用下唯一)</td></tr>
|
|
|
- <tr><td><code>mapped_email</code></td><td>string</td><td><span class="tag-optional">否</span></td><td>外部系统中的邮箱(在该应用下唯一)</td></tr>
|
|
|
- <tr><td><code>is_active</code></td><td>boolean</td><td><span class="tag-optional">否</span></td><td>映射关系状态(<code>true</code>启用,<code>false</code>禁用)</td></tr>
|
|
|
+ <tr><td><code>name</code></td><td>string</td><td><span class="tag-conditional">条件</span></td><td>姓名(新建用户必填,已有用户不允许修改)</td></tr>
|
|
|
+ <tr><td><code>english_name</code></td><td>string</td><td><span class="tag-optional">否</span></td><td>英文名(新建用户可选,如未提供会自动生成;已有用户不允许修改)</td></tr>
|
|
|
+ <tr><td><code>mapped_key</code></td><td>string</td><td><span class="tag-optional">否</span></td><td>外部系统中的用户ID(在该应用下唯一,可修改)</td></tr>
|
|
|
+ <tr><td><code>mapped_email</code></td><td>string</td><td><span class="tag-optional">否</span></td><td>外部系统中的邮箱(在该应用下唯一,可修改)</td></tr>
|
|
|
+ <tr><td><code>is_active</code></td><td>boolean</td><td><span class="tag-optional">否</span></td><td>映射关系状态(<code>true</code>启用,<code>false</code>禁用,可修改)</td></tr>
|
|
|
<tr><td><code>sync_action</code></td><td>string</td><td><span class="tag-optional">否</span></td><td><code>UPSERT</code> (默认) 或 <code>DELETE</code></td></tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
- <p><strong>请求示例 (UPSERT):</strong></p>
|
|
|
+ <p><strong>请求示例 1: 新建用户 (UPSERT):</strong></p>
|
|
|
<div class="code-block">
|
|
|
<pre>
|
|
|
curl -X POST "http://your-uap-domain/api/v1/apps/mapping/sync" \
|
|
|
@@ -62,15 +72,32 @@ curl -X POST "http://your-uap-domain/api/v1/apps/mapping/sync" \
|
|
|
-d '{
|
|
|
"mobile": "13800138000",
|
|
|
"name": "张三",
|
|
|
- "english_name": "zhangsan",
|
|
|
"mapped_key": "user_1001",
|
|
|
"mapped_email": "zhangsan@example.com",
|
|
|
"sync_action": "UPSERT"
|
|
|
}'
|
|
|
</pre>
|
|
|
</div>
|
|
|
+ <p class="note">注意:<code>english_name</code> 可以不提供,系统会自动生成。</p>
|
|
|
|
|
|
- <p><strong>请求示例 (DELETE):</strong></p>
|
|
|
+ <p><strong>请求示例 2: 更新已有用户的映射信息 (UPSERT):</strong></p>
|
|
|
+ <div class="code-block">
|
|
|
+ <pre>
|
|
|
+curl -X POST "http://your-uap-domain/api/v1/apps/mapping/sync" \
|
|
|
+ -H "Content-Type: application/json" \
|
|
|
+ -H "X-App-Access-Token: YOUR_APP_ACCESS_TOKEN" \
|
|
|
+ -d '{
|
|
|
+ "mobile": "13800138000",
|
|
|
+ "mapped_key": "user_1001_updated",
|
|
|
+ "mapped_email": "zhangsan_new@example.com",
|
|
|
+ "is_active": true,
|
|
|
+ "sync_action": "UPSERT"
|
|
|
+ }'
|
|
|
+ </pre>
|
|
|
+ </div>
|
|
|
+ <p class="note">注意:已有用户不能修改 <code>name</code>、<code>mobile</code>、<code>english_name</code>,只能修改映射信息。</p>
|
|
|
+
|
|
|
+ <p><strong>请求示例 3: 删除映射 (DELETE):</strong></p>
|
|
|
<div class="code-block">
|
|
|
<pre>
|
|
|
curl -X POST "http://your-uap-domain/api/v1/apps/mapping/sync" \
|
|
|
@@ -104,7 +131,13 @@ curl -X POST "http://your-uap-domain/api/v1/apps/mapping/sync" \
|
|
|
|
|
|
<p><strong>响应失败:</strong></p>
|
|
|
<ul>
|
|
|
- <li><code>400 Bad Request</code>: <code>mapped_key</code> 或 <code>mapped_email</code> 已被其他用户占用。</li>
|
|
|
+ <li><code>400 Bad Request</code>:
|
|
|
+ <ul>
|
|
|
+ <li>新建用户未提供 <code>name</code></li>
|
|
|
+ <li>已有用户尝试修改 <code>name</code>、<code>mobile</code> 或 <code>english_name</code></li>
|
|
|
+ <li><code>mapped_key</code> 或 <code>mapped_email</code> 已被其他用户占用</li>
|
|
|
+ </ul>
|
|
|
+ </li>
|
|
|
<li><code>403 Forbidden</code>: Access Token 无效或过期。</li>
|
|
|
</ul>
|
|
|
</div>
|