¶Ô±ÈÐÂÎļþ |
| | |
| | | # UserController æ¥å£æµè¯ææ¡£ |
| | | |
| | | ## 1. ç¨æ·æ³¨åæ¥å£ |
| | | |
| | | ### æ¥å£ä¿¡æ¯ |
| | | - 请æ±è·¯å¾ï¼`/api/users/register` |
| | | - è¯·æ±æ¹æ³ï¼POST |
| | | - 请æ±ä½ç±»åï¼application/json |
| | | |
| | | ### 请æ±åæ° |
| | | ```json |
| | | { |
| | | "nickname": "ç¨æ·æµç§°", |
| | | "accountName": "è´¦å·å", |
| | | "password": "å¯ç " |
| | | } |
| | | ``` |
| | | |
| | | ### æµè¯ç¨ä¾ |
| | | |
| | | #### æååºæ¯ |
| | | 1. æ£å¸¸æ³¨å |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "test123", |
| | | "password": "password123" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "message": "注åæå", |
| | | "data": { |
| | | "id": 1, |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "test123" |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | #### å¤±è´¥åºæ¯ |
| | | 1. è´¦å·åå·²åå¨ |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "existing_user", |
| | | "password": "password123" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "è´¦å·åå·²åå¨" |
| | | } |
| | | ``` |
| | | |
| | | 2. è´¦å·åæ ¼å¼é误 |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "ab", // å°äº4ä½ |
| | | "password": "password123" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "è´¦å·åå¿
é¡»æ¯4-16ä½åæ¯ãæ°åæä¸å线" |
| | | } |
| | | ``` |
| | | |
| | | 3. å¯ç æ ¼å¼é误 |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "test123", |
| | | "password": "123" // å°äº6ä½ |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "å¯ç å¿
é¡»æ¯6-16ä½åæ¯ãæ°åæä¸å线" |
| | | } |
| | | ``` |
| | | |
| | | 4. å¿
å¡«åæ®µä¸ºç©º |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "nickname": "", |
| | | "accountName": "", |
| | | "password": "" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "ç¨æ·åä¸è½ä¸ºç©º" |
| | | } |
| | | ``` |
| | | |
| | | ## 2. ç¨æ·ç»å½æ¥å£ |
| | | |
| | | ### æ¥å£ä¿¡æ¯ |
| | | - 请æ±è·¯å¾ï¼`/api/users/login` |
| | | - è¯·æ±æ¹æ³ï¼POST |
| | | - 请æ±ä½ç±»åï¼application/json |
| | | |
| | | ### 请æ±åæ° |
| | | ```json |
| | | { |
| | | "accountName": "è´¦å·å", |
| | | "password": "å¯ç " |
| | | } |
| | | ``` |
| | | |
| | | ### æµè¯ç¨ä¾ |
| | | |
| | | #### æååºæ¯ |
| | | 1. æ£å¸¸ç»å½ |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "accountName": "test123", |
| | | "password": "password123" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "message": "ç»å½æå", |
| | | "data": "eyJhbGciOiJIUzI1NiJ9..." // JWT token |
| | | } |
| | | ``` |
| | | |
| | | #### å¤±è´¥åºæ¯ |
| | | 1. è´¦å·ä¸åå¨ |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "accountName": "nonexistent", |
| | | "password": "password123" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "è´¦å·ä¸åå¨" |
| | | } |
| | | ``` |
| | | |
| | | 2. å¯ç é误 |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "accountName": "test123", |
| | | "password": "wrong_password" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "å¯ç é误" |
| | | } |
| | | ``` |
| | | |
| | | 3. å¿
å¡«åæ®µä¸ºç©º |
| | | - 请æ±åæ°ï¼ |
| | | ```json |
| | | { |
| | | "accountName": "", |
| | | "password": "" |
| | | } |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "è´¦å·åä¸è½ä¸ºç©º" |
| | | } |
| | | ``` |
| | | |
| | | ## 3. è·åç¨æ·ä¿¡æ¯æ¥å£ |
| | | |
| | | ### æ¥å£ä¿¡æ¯ |
| | | - 请æ±è·¯å¾ï¼`/api/users/info` |
| | | - è¯·æ±æ¹æ³ï¼GET |
| | | - 请æ±å¤´ï¼éè¦æºå¸¦ token |
| | | |
| | | ### æµè¯ç¨ä¾ |
| | | |
| | | #### æååºæ¯ |
| | | 1. æ£å¸¸è·åç¨æ·ä¿¡æ¯ |
| | | - 请æ±å¤´ï¼ |
| | | ``` |
| | | token: eyJhbGciOiJIUzI1NiJ9... |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "id": 1, |
| | | "nickname": "æµè¯ç¨æ·", |
| | | "accountName": "test123" |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | #### å¤±è´¥åºæ¯ |
| | | 1. æªæºå¸¦ token |
| | | - 请æ±å¤´ï¼æ token |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 401, |
| | | "message": "æªç»å½ætokenæ æ" |
| | | } |
| | | ``` |
| | | |
| | | 2. token æ æ |
| | | - 请æ±å¤´ï¼ |
| | | ``` |
| | | token: invalid_token |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 401, |
| | | "message": "tokenæ ææå·²è¿æ" |
| | | } |
| | | ``` |
| | | |
| | | 3. token å·²è¿æ |
| | | - 请æ±å¤´ï¼ |
| | | ``` |
| | | token: expired_token |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 401, |
| | | "message": "tokenæ ææå·²è¿æ" |
| | | } |
| | | ``` |
| | | |
| | | 4. ç¨æ·ä¸åå¨ |
| | | - 请æ±å¤´ï¼ |
| | | ``` |
| | | token: valid_token_for_nonexistent_user |
| | | ``` |
| | | - 颿ååºï¼ |
| | | ```json |
| | | { |
| | | "code": 400, |
| | | "message": "ç¨æ·ä¸åå¨" |
| | | } |
| | | ``` |
| | | |
| | | ## æµè¯å·¥å
·å»ºè®® |
| | | 1. Postman |
| | | 2. Swagger UI |
| | | 3. JMeterï¼ç¨äºæ§è½æµè¯ï¼ |
| | | |
| | | ## 注æäºé¡¹ |
| | | 1. æææ¥å£é½æ¯æè·¨åè¯·æ± |
| | | 2. 注ååç»å½æ¥å£ä½¿ç¨ `@Valid` 注解è¿è¡åæ°éªè¯ |
| | | 3. ç¨æ·ä¿¡æ¯æ¥å£éè¦ææç JWT token |
| | | 4. å¯ç å¨ä¼ è¾è¿ç¨ä¸åºè¯¥ä½¿ç¨ HTTPS å å¯ |
| | | 5. å»ºè®®å¨æµè¯ç¯å¢ä¸ä½¿ç¨æµè¯æ°æ®åº |
| | | 6. æµè¯æ¶æ³¨ææ¸
çæµè¯æ°æ®ï¼é¿å
å½±åå
¶ä»æµè¯ç¨ä¾ |