feat: 补充接口example
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import {Controller, Get, Route, Response, Tags, Request, Security, OperationId} from 'tsoa';
|
import {Controller, Get, Route, Response, Tags, Request, Security, OperationId, Example} from 'tsoa';
|
||||||
import {ApiError, ApiResponse} from '../types/api';
|
import {ApiError, ApiResponse} from '../types/api';
|
||||||
import type {Request as ExpressRequest} from 'express';
|
import type {Request as ExpressRequest} from 'express';
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
@@ -50,6 +50,21 @@ export class GroupController extends Controller {
|
|||||||
@Response<ApiResponse<UserInfo[]>>(200, 'Success')
|
@Response<ApiResponse<UserInfo[]>>(200, 'Success')
|
||||||
@Response<ApiResponse<null>>(400, 'Bad Request')
|
@Response<ApiResponse<null>>(400, 'Bad Request')
|
||||||
@Response<ApiResponse<null>>(401, 'Unauthorized')
|
@Response<ApiResponse<null>>(401, 'Unauthorized')
|
||||||
|
@Example<ApiResponse<UserInfo[]>>({
|
||||||
|
code: 200,
|
||||||
|
message: 'success',
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
userId: 123,
|
||||||
|
nickname: 'John Doe',
|
||||||
|
avatarUrl: 'https://example.com/avatar.jpg',
|
||||||
|
gender: 'MALE',
|
||||||
|
nimToken: 'nim_token_123',
|
||||||
|
nimAccountId: 'nim_account_123',
|
||||||
|
token: 'user_token_123',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
public async getGroupMembers(@Request() req: ExpressRequest): Promise<ApiResponse<UserInfo[]>> {
|
public async getGroupMembers(@Request() req: ExpressRequest): Promise<ApiResponse<UserInfo[]>> {
|
||||||
const user = req.user;
|
const user = req.user;
|
||||||
const groupId = req.headers.groupid;
|
const groupId = req.headers.groupid;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import {Controller, Get, Route, Response, Tags, OperationId} from 'tsoa';
|
import {Controller, Get, Route, Response, Tags, OperationId, Example} from 'tsoa';
|
||||||
import type { ApiResponse } from '../types/api';
|
import type { ApiResponse } from '../types/api';
|
||||||
|
|
||||||
@Route('api')
|
@Route('api')
|
||||||
@@ -12,6 +12,11 @@ export class TestController extends Controller {
|
|||||||
@Get('/test')
|
@Get('/test')
|
||||||
@OperationId('Test_GetTest') // MUST: Specify operationId for better API documentation
|
@OperationId('Test_GetTest') // MUST: Specify operationId for better API documentation
|
||||||
@Response<ApiResponse>(200, 'Success')
|
@Response<ApiResponse>(200, 'Success')
|
||||||
|
@Example<ApiResponse>({
|
||||||
|
code: 200,
|
||||||
|
message: 'success',
|
||||||
|
data: null,
|
||||||
|
})
|
||||||
public async getTest(): Promise<ApiResponse> {
|
public async getTest(): Promise<ApiResponse> {
|
||||||
return {
|
return {
|
||||||
code: 200,
|
code: 200,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import {Controller, Get, Route, Response, Tags, Middlewares, Request, Security, OperationId} from 'tsoa';
|
import {Controller, Get, Route, Response, Tags, Example, Request, Security, OperationId} from 'tsoa';
|
||||||
import type { ApiResponse } from '../types/api';
|
import type { ApiResponse } from '../types/api';
|
||||||
import type { Request as ExpressRequest } from 'express';
|
import type { Request as ExpressRequest } from 'express';
|
||||||
import type {UserInfo} from "../types/user";
|
import type {UserInfo} from "../types/user";
|
||||||
@@ -17,6 +17,19 @@ export class UserController extends Controller {
|
|||||||
@Security('jwt')
|
@Security('jwt')
|
||||||
@Response<ApiResponse<UserInfo>>(200, 'Success')
|
@Response<ApiResponse<UserInfo>>(200, 'Success')
|
||||||
@Response(401, 'Unauthorized')
|
@Response(401, 'Unauthorized')
|
||||||
|
@Example<ApiResponse<UserInfo>>({
|
||||||
|
code: 200,
|
||||||
|
message: 'success',
|
||||||
|
data: {
|
||||||
|
userId: 123,
|
||||||
|
nickname: 'John Doe',
|
||||||
|
avatarUrl: 'https://example.com/avatar.jpg',
|
||||||
|
gender: 'MALE',
|
||||||
|
nimToken: 'nim_token_123',
|
||||||
|
nimAccountId: 'nim_account_123',
|
||||||
|
token: 'user_token_123',
|
||||||
|
}
|
||||||
|
})
|
||||||
public async getUserGroupInfo(@Request() req: ExpressRequest): Promise<ApiResponse<Omit<UserInfo, 'token'>>> {
|
public async getUserGroupInfo(@Request() req: ExpressRequest): Promise<ApiResponse<Omit<UserInfo, 'token'>>> {
|
||||||
const { token, ...rest } = req.user;
|
const { token, ...rest } = req.user;
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -5,7 +5,5 @@ export interface UserInfo {
|
|||||||
gender: 'MALE' | 'FEMALE' | 'UNKNOWN';
|
gender: 'MALE' | 'FEMALE' | 'UNKNOWN';
|
||||||
nimToken: string; // NetEase Cloud Communication token
|
nimToken: string; // NetEase Cloud Communication token
|
||||||
nimAccountId: string; // NetEase Cloud Communication account ID
|
nimAccountId: string; // NetEase Cloud Communication account ID
|
||||||
createdAt: string;
|
|
||||||
updatedAt: string;
|
|
||||||
token: string; // Authentication token
|
token: string; // Authentication token
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user