mirror of
https://github.com/yyhuni/xingrin.git
synced 2026-02-06 14:43:11 +08:00
101 lines
3.0 KiB
TypeScript
101 lines
3.0 KiB
TypeScript
|
|
// Endpoint 专用数据类型定义
|
|||
|
|
// 注意:后端返回 snake_case,但 api-client.ts 会自动转换为 camelCase
|
|||
|
|
|
|||
|
|
import type { BatchCreateResponse } from './api-response.types'
|
|||
|
|
|
|||
|
|
export interface Endpoint {
|
|||
|
|
id: number
|
|||
|
|
url: string
|
|||
|
|
|
|||
|
|
// HTTP 元信息(部分场景可为空)
|
|||
|
|
method?: string
|
|||
|
|
statusCode: number | null // 后端: status_code (指针类型,可能为 null)
|
|||
|
|
title: string
|
|||
|
|
contentLength: number | null // 后端: content_length (指针类型,可能为 null)
|
|||
|
|
contentType?: string | null // 后端: content_type (可选)
|
|||
|
|
responseTime?: number | null // 后端: response_time (单位秒,可选)
|
|||
|
|
tags?: string[] | null // 后端: tags/matched_gf_patterns 映射(可选)
|
|||
|
|
|
|||
|
|
// 站点/端点维度的附加信息(资产表和快照表都会使用)
|
|||
|
|
host?: string
|
|||
|
|
location?: string
|
|||
|
|
webserver?: string
|
|||
|
|
bodyPreview?: string
|
|||
|
|
tech?: string[]
|
|||
|
|
vhost?: boolean | null
|
|||
|
|
discoveredAt?: string
|
|||
|
|
|
|||
|
|
// 旧版域名关联字段(在部分接口中可能不存在)
|
|||
|
|
domainId?: number // 后端: domain_id
|
|||
|
|
subdomainId?: number // 后端: subdomain_id
|
|||
|
|
domain?: string
|
|||
|
|
subdomain?: string
|
|||
|
|
updatedAt?: string // 后端: updated_at
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Endpoint 列表请求参数
|
|||
|
|
// 后端固定按更新时间降序排列
|
|||
|
|
export interface GetEndpointsRequest {
|
|||
|
|
page?: number
|
|||
|
|
pageSize?: number
|
|||
|
|
search?: string
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Endpoint 列表响应数据
|
|||
|
|
// 注意:后端返回 snake_case,但 api-client.ts 会自动转换为 camelCase
|
|||
|
|
export interface GetEndpointsResponse {
|
|||
|
|
endpoints: Endpoint[]
|
|||
|
|
total: number
|
|||
|
|
page: number
|
|||
|
|
pageSize: number // 后端返回 camelCase 格式
|
|||
|
|
totalPages: number // 后端返回 camelCase 格式
|
|||
|
|
// 兼容字段(向后兼容)
|
|||
|
|
page_size?: number
|
|||
|
|
total_pages?: number
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 创建 Endpoint 请求参数
|
|||
|
|
export interface CreateEndpointRequest {
|
|||
|
|
url: string // 必填
|
|||
|
|
method?: string // 可选
|
|||
|
|
statusCode?: number | null // 可选
|
|||
|
|
title?: string // 可选
|
|||
|
|
contentLength?: number | null // 可选
|
|||
|
|
contentType?: string | null // 可选
|
|||
|
|
responseTime?: number | null // 可选
|
|||
|
|
tags?: string[] | null // 可选
|
|||
|
|
domain?: string // 可选
|
|||
|
|
subdomain?: string // 可选
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 创建 Endpoint 响应(继承通用批量创建响应)
|
|||
|
|
export interface CreateEndpointsResponse extends BatchCreateResponse {
|
|||
|
|
// 继承的字段:message, requestedCount, createdCount, existedCount
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 更新 Endpoint 请求参数
|
|||
|
|
export interface UpdateEndpointRequest {
|
|||
|
|
id: number
|
|||
|
|
url?: string
|
|||
|
|
method?: string
|
|||
|
|
statusCode?: number
|
|||
|
|
title?: string
|
|||
|
|
contentLength?: number
|
|||
|
|
contentType?: string | null
|
|||
|
|
responseTime?: number | null
|
|||
|
|
tags?: string[] | null
|
|||
|
|
domain?: string
|
|||
|
|
subdomain?: string
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 批量删除 Endpoint 请求参数
|
|||
|
|
export interface BatchDeleteEndpointsRequest {
|
|||
|
|
endpointIds: number[]
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 批量删除 Endpoint 响应数据
|
|||
|
|
export interface BatchDeleteEndpointsResponse {
|
|||
|
|
message: string
|
|||
|
|
deletedCount: number
|
|||
|
|
}
|