diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index d08cecf9..f77ece13 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -1,5 +1,5 @@
name: "Feature Request"
-description: Suggest an enhancement to APINTO.
+description: Suggest an enhancement to APIPark.
title: "feat: As a user, I want to ..., so that ..."
body:
- type: markdown
@@ -20,4 +20,4 @@ body:
placeholder: |
As a user, I want to ..., so that...
validations:
- required: true
\ No newline at end of file
+ required: true
diff --git a/README.md b/README.md
index 575832f0..f4801f89 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
- Connect to 100+ major models from all mainstream AI Companies
+ Connect to 100+ AI models
- Standardize all AI API call formats, with no additional adaptation work required
+ Unified API to use all AI
-
- The API Service Plaza is one of APIPark’s core features, aiming to solve the problem of fragmented and chaotic internal API management in enterprises. Through the API Service Plaza, enterprises can showcase all API services on a unified platform, allowing different departments and teams to easily find and use the required API services.
+
+
+
+
+
+
+
+
+
+ Transform AI & Prompt to REST API
+
+
+ API Developer Portal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ High Performance
+
+
+ Manage API lifecycle
+
+
+
+
+
+
+
- The full API lifecycle management feature helps enterprises standardize the API management process, manage API traffic forwarding and load balancing, and oversee all API versions published externally. This improves API quality and maintainability, enabling efficient development and stable operation to support rapid business growth and innovation.
-
-
-
-
-
- Combine AI models and prompt templates to form new AI APIs
-
-
- Switching AI models or modifying prompts won’t affect your APP or microservices
-
-
-
-
-
-
-
- The API Service Plaza is one of APIPark’s core features, aiming to solve the problem of fragmented and chaotic internal API management in enterprises. Through the API Service Plaza, enterprises can showcase all API services on a unified platform, allowing different departments and teams to easily find and use the required API services.
-
-
-
- The full API lifecycle management feature helps enterprises standardize the API management process, manage API traffic forwarding and load balancing, and oversee all API versions published externally. This improves API quality and maintainability, enabling efficient development and stable operation to support rapid business growth and innovation.
-
-
-
-
-
- Centrally manage and display all AI / REST APIs
-
-
- Cover the entire API lifecycle from design, release, operation, to deprecation
-
-
-
-
-
-
-
- The API Service Plaza is one of APIPark’s core features, aiming to solve the problem of fragmented and chaotic internal API management in enterprises. Through the API Service Plaza, enterprises can showcase all API services on a unified platform, allowing different departments and teams to easily find and use the required API services.
-
-
-
- The full API lifecycle management feature helps enterprises standardize the API management process, manage API traffic forwarding and load balancing, and oversee all API versions published externally. This improves API quality and maintainability, enabling efficient development and stable operation to support rapid business growth and innovation.
- Manage multiple tenants, ensuring data isolation and security
+ Review subscription before allowing API requests
- API resources require approval before usage
+ Manage subscriber
-
-
- The multi-tenant management feature allows enterprises to manage multiple tenants on the same platform. Each tenant can have independent resources, users, and permission settings, ensuring data and operation isolation, improving resource utilization efficiency, and simplifying management.
-
- APIPark provides a process approval feature for all API resources, preventing violations or unauthorized API usage. Callers must apply for API resources and wait for the service provider's approval before officially using the API.
+
+
+
- Use detailed call logs to trace API access at any time
+ Logging
- Comprehensive statistical reports*
+ Analysis
- The API call log feature provides enterprises with comprehensive logging capabilities, recording all relevant information for each API call. These logs allow enterprises to quickly trace and troubleshoot API call issues, ensuring system stability and data security.
- Through historical call data analysis, APIPark can display long-term API call trends and performance changes, helping enterprises perform preventative maintenance before problems arise.
diff --git a/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx b/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
index 025af3b5..b03f0a81 100644
--- a/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
+++ b/frontend/packages/common/src/components/aoplatform/LanguageSetting.tsx
@@ -1,6 +1,5 @@
import { Dropdown, Row, Col, Button } from 'antd';
import i18n from '@common/locales';
-import { $t } from '@common/locales';
import { memo, useEffect, useMemo } from 'react';
import { useGlobalContext } from '@common/contexts/GlobalStateContext';
import { Icon } from '@iconify/react/dist/iconify.js';
diff --git a/frontend/packages/common/src/locales/index.ts b/frontend/packages/common/src/locales/index.ts
index 00cb3708..d819368b 100644
--- a/frontend/packages/common/src/locales/index.ts
+++ b/frontend/packages/common/src/locales/index.ts
@@ -15,7 +15,7 @@ import localJa_JP from './scan/ja-JP.json'; // 本地翻译英文文件
// import config from '../../../../i18next-scanner.config.js';
const resources = {
- 'zh-CH': {
+ 'zh-CN': {
translation: localZh_CN,
...zhCN
},
diff --git a/frontend/packages/common/src/locales/scan/en-US.json b/frontend/packages/common/src/locales/scan/en-US.json
index 597a3792..0df052f5 100644
--- a/frontend/packages/common/src/locales/scan/en-US.json
+++ b/frontend/packages/common/src/locales/scan/en-US.json
@@ -5,7 +5,7 @@
"Kb58e0c3f": "Service",
"Kc9e489f5": "Team",
"K61c89f5f": "API Marketplace",
- "K16d71239": "Dashboard",
+ "K16d71239": "Analysis",
"K714c192d": "Call Statistics",
"Kd57dfe97": "Topology",
"K3fe97dcc": "System Settings",
@@ -24,7 +24,7 @@
"K631d646f": "Open API",
"K6535ff9c": "Account Settings",
"Kf15499b4": "Log Out",
- "Kabbd6e6": "Documentation",
+ "Kabbd6e6": "Docs",
"K1196b104": "APIPark",
"K1f42de3": "HTTP Status Code",
"K4770dff4": "System Status Code",
@@ -59,7 +59,7 @@
"Kdeed8399": "Static Upstream Server",
"K4ee62e8": "This API lacks (0)(1)(2), please provide.",
"K385591f3": "Forwarding Info,",
- "K68415c14": "Documentation Info,",
+ "K68415c14": "Docs Info,",
"K133b75e9": "Upstream Info,",
"K43fcaf94": "Success",
"Kc71c6a9": "Online Failed",
@@ -88,8 +88,8 @@
"K597435c5": "Monitor",
"Ke66a17dd": "Required",
"K28b68036": "Illegal Character, Only English Supported",
- "K6206e4ad": "Upload OpenAPI Document (.json/.yaml)",
- "Kfba46e6d": "Replace OpenAPI Document (.json/.yaml)",
+ "K6206e4ad": "Upload OpenAPI File (.json/.yaml)",
+ "Kfba46e6d": "Replace OpenAPI File (.json/.yaml)",
"Kdac8ce7e": "Open OpenAPI YAML Editor",
"Kffd7e274": "No Review: All applications are allowed to subscribe to this service",
"K8a8b13e4": "Manual Review: Only reviewed and approved applications can subscribe to this service",
@@ -190,7 +190,7 @@
"K6ebca204": "Update Time",
"Kabfe9512": "Save",
"K51d1eb5d": "API",
- "Ka2b6d281": "API Documentation",
+ "Ka2b6d281": "API Docs",
"Kdefa9caa": "Usage Instructions",
"K36856e71": "Publish",
"K6382bbfd": "Subscription",
diff --git a/frontend/packages/common/src/locales/scan/ja-JP.json b/frontend/packages/common/src/locales/scan/ja-JP.json
index c0cb897f..52b8a03c 100644
--- a/frontend/packages/common/src/locales/scan/ja-JP.json
+++ b/frontend/packages/common/src/locales/scan/ja-JP.json
@@ -5,7 +5,7 @@
"Kb58e0c3f": "Service",
"Kc9e489f5": "Team",
"K61c89f5f": "API マーケット",
- "K16d71239": "ダッシュボード",
+ "K16d71239": "解析",
"K714c192d": "呼び出し統計",
"Kd57dfe97": "トポロジー図",
"K3fe97dcc": "システム設定",
diff --git a/frontend/packages/common/src/locales/scan/newJson/en-US.json b/frontend/packages/common/src/locales/scan/newJson/en-US.json
deleted file mode 100644
index 8dc51f34..00000000
--- a/frontend/packages/common/src/locales/scan/newJson/en-US.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Kac172626": "拒绝申请时,请填写拒绝理由",
- "Ke1b1865": "私有",
- "K4786c57c": "公共"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/newJson/ja-JP.json b/frontend/packages/common/src/locales/scan/newJson/ja-JP.json
deleted file mode 100644
index 1dd5aafd..00000000
--- a/frontend/packages/common/src/locales/scan/newJson/ja-JP.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "Kefaf9956": "创建时间",
- "Kad1c674c": "协议",
- "Kad01bc3e": "方法",
- "Ka29b346f": "地址(IP 端口或域名)",
- "K63b1e0dc": "权重(0-999)",
- "Ka7f8266f": "带权轮询",
- "K9d7e880a": "发布版本",
- "Kea996156": "发布申请记录",
- "K855135f": "创建版本时间",
- "Kcbf39b82": "版本状态",
- "K339d15b5": "创建人",
- "K7194cea2": "审核时间",
- "K831aa6c0": "申请方-应用",
- "K7ad449bc": "审核状态",
- "K3b3a98ce": "审核人",
- "K61b62ace": "来源",
- "K442937c4": "订阅时间",
- "K442cfba1": "请输入",
- "K3bb646e4": "请选择",
- "Ka9481f95": "创建者",
- "K2472615e": "服务数量",
- "Kf7200cd9": "负责人",
- "Kd7d84192": "姓名",
- "Kc88e03b6": "团队角色",
- "Ke08ff808": "添加日期",
- "K19a3ebe0": "请求成功数",
- "Kcaa8259": "转发成功数",
- "K17f93984": "API 名称",
- "K888f038f": "失败状态码数",
- "Ke792d01c": "所属服务",
- "K42d2bef2": "平均响应时间(ms)",
- "K9197c994": "最大响应时间(ms)",
- "K7c2f3fee": "最小响应时间(ms)",
- "K3d85ea54": "平均请求流量(KB)",
- "Keec09d32": "最大请求流量(KB)",
- "K3786b48": "最小请求流量(KB)",
- "Kdf35c48c": "所有成员",
- "K759fb403": "状态",
- "K5c123bad": "角色名称",
- "K2c5882be": "绑定域名",
- "K1cc07937": "过期日期",
- "K39686a7f": "支持字母开头、英文数字中横线下划线组合",
- "Ka4ecfa40": "英文数字下划线任意一种,首字母必须为英文",
- "K37318b68": "无法连接集群,请检查集群地址是否正确或防火墙配置",
- "Kac172626": "选择拒绝时,审核意见为必填",
- "K7f0c746d": "操作成功",
- "K6a365d01": "操作失败",
- "K978062b6": "正在操作",
- "Kca7bd6d4": "正在加载数据",
- "K3c93b77e": "获取数据失败",
- "Ke108c369": "登录成功",
- "K9168d3e": "退出成功,将跳转至登录页",
- "K2f8a7ab7": "未填写审核意见",
- "Kb858d78a": "复制成功",
- "K26e85d15": "复制失败,请手动复制",
- "Kd60d204": "服务所属团队",
- "K823bfe63": "在线",
- "Kc9315fa1": "已拒绝",
- "K3fbe7511": "发布异常",
- "Ke64e695c": "发布中",
- "K1f89176d": "申请方所属团队",
- "K69827c60": "发布状态",
- "K8f7abcab": " 次",
- "K28cf9613": "每分钟",
- "K18f25019": "每5分钟",
- "Kf00f01ca": "每小时",
- "Kfcda87fc": "每天",
- "K29ec75dc": "每周",
- "Ke1b1865": "私有网络",
- "K4786c57c": "公共网络"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/newJson/zh-CN.json b/frontend/packages/common/src/locales/scan/newJson/zh-CN.json
deleted file mode 100644
index ea843a14..00000000
--- a/frontend/packages/common/src/locales/scan/newJson/zh-CN.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "Kefaf9956": "创建时间",
- "Kad1c674c": "协议",
- "Kad01bc3e": "方法",
- "Ka29b346f": "地址(IP 端口或域名)",
- "K63b1e0dc": "权重(0-999)",
- "Ka7f8266f": "带权轮询",
- "K9d7e880a": "发布版本",
- "Kea996156": "发布申请记录",
- "K855135f": "创建版本时间",
- "Kcbf39b82": "版本状态",
- "K339d15b5": "创建人",
- "K7194cea2": "审核时间",
- "K831aa6c0": "申请方-应用",
- "K7ad449bc": "审核状态",
- "K3b3a98ce": "审核人",
- "K61b62ace": "来源",
- "K442937c4": "订阅时间",
- "K442cfba1": "请输入",
- "K3bb646e4": "请选择",
- "Ka9481f95": "创建者",
- "K2472615e": "服务数量",
- "Kf7200cd9": "负责人",
- "Kd7d84192": "姓名",
- "Kc88e03b6": "团队角色",
- "Ke08ff808": "添加日期",
- "K19a3ebe0": "请求成功",
- "Kcaa8259": "转发成功",
- "K17f93984": "API 名称",
- "K888f038f": "失败状态码",
- "Ke792d01c": "所属服务",
- "K42d2bef2": "平均响应时间(ms)",
- "K9197c994": "最大响应时间(ms)",
- "K7c2f3fee": "最小响应时间(ms)",
- "K3d85ea54": "平均请求流量(KB)",
- "Keec09d32": "最大请求流量(KB)",
- "K3786b48": "最小请求流量(KB)",
- "Kdf35c48c": "所有成员",
- "K759fb403": "状态",
- "K5c123bad": "角色名称",
- "K2c5882be": "绑定域名",
- "K1cc07937": "过期日期",
- "K39686a7f": "支持字母开头、英文数字中横线下划线组合",
- "Ka4ecfa40": "英文数字下划线任意一种,首字母必须为英文",
- "K37318b68": "无法连接集群,请检查集群地址是否正确或防火墙配置",
- "Kac172626": "拒绝申请时,请填写拒绝理由",
- "K7f0c746d": "成功",
- "K6a365d01": "失败",
- "K978062b6": "正在操作",
- "Kca7bd6d4": "正在加载数据",
- "K3c93b77e": "获取数据失败",
- "Ke108c369": "登录成功",
- "K9168d3e": "退出成功,将跳转至登录页",
- "K2f8a7ab7": "未填写审核意见",
- "Kb858d78a": "复制成功",
- "K26e85d15": "复制失败,请手动复制",
- "Kd60d204": "服务所属团队",
- "K823bfe63": "在线",
- "Kc9315fa1": "已拒绝",
- "K3fbe7511": "发布异常",
- "Ke64e695c": "发布中",
- "K1f89176d": "申请方所属团队",
- "K69827c60": "发布状态",
- "K8f7abcab": "次",
- "K28cf9613": "每分钟",
- "K18f25019": "每5分钟",
- "Kf00f01ca": "每小时",
- "Kfcda87fc": "每天",
- "K29ec75dc": "每周",
- "Ke1b1865": "私有",
- "K4786c57c": "公共"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/newJson/zh-TW.json b/frontend/packages/common/src/locales/scan/newJson/zh-TW.json
deleted file mode 100644
index 1dd5aafd..00000000
--- a/frontend/packages/common/src/locales/scan/newJson/zh-TW.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "Kefaf9956": "创建时间",
- "Kad1c674c": "协议",
- "Kad01bc3e": "方法",
- "Ka29b346f": "地址(IP 端口或域名)",
- "K63b1e0dc": "权重(0-999)",
- "Ka7f8266f": "带权轮询",
- "K9d7e880a": "发布版本",
- "Kea996156": "发布申请记录",
- "K855135f": "创建版本时间",
- "Kcbf39b82": "版本状态",
- "K339d15b5": "创建人",
- "K7194cea2": "审核时间",
- "K831aa6c0": "申请方-应用",
- "K7ad449bc": "审核状态",
- "K3b3a98ce": "审核人",
- "K61b62ace": "来源",
- "K442937c4": "订阅时间",
- "K442cfba1": "请输入",
- "K3bb646e4": "请选择",
- "Ka9481f95": "创建者",
- "K2472615e": "服务数量",
- "Kf7200cd9": "负责人",
- "Kd7d84192": "姓名",
- "Kc88e03b6": "团队角色",
- "Ke08ff808": "添加日期",
- "K19a3ebe0": "请求成功数",
- "Kcaa8259": "转发成功数",
- "K17f93984": "API 名称",
- "K888f038f": "失败状态码数",
- "Ke792d01c": "所属服务",
- "K42d2bef2": "平均响应时间(ms)",
- "K9197c994": "最大响应时间(ms)",
- "K7c2f3fee": "最小响应时间(ms)",
- "K3d85ea54": "平均请求流量(KB)",
- "Keec09d32": "最大请求流量(KB)",
- "K3786b48": "最小请求流量(KB)",
- "Kdf35c48c": "所有成员",
- "K759fb403": "状态",
- "K5c123bad": "角色名称",
- "K2c5882be": "绑定域名",
- "K1cc07937": "过期日期",
- "K39686a7f": "支持字母开头、英文数字中横线下划线组合",
- "Ka4ecfa40": "英文数字下划线任意一种,首字母必须为英文",
- "K37318b68": "无法连接集群,请检查集群地址是否正确或防火墙配置",
- "Kac172626": "选择拒绝时,审核意见为必填",
- "K7f0c746d": "操作成功",
- "K6a365d01": "操作失败",
- "K978062b6": "正在操作",
- "Kca7bd6d4": "正在加载数据",
- "K3c93b77e": "获取数据失败",
- "Ke108c369": "登录成功",
- "K9168d3e": "退出成功,将跳转至登录页",
- "K2f8a7ab7": "未填写审核意见",
- "Kb858d78a": "复制成功",
- "K26e85d15": "复制失败,请手动复制",
- "Kd60d204": "服务所属团队",
- "K823bfe63": "在线",
- "Kc9315fa1": "已拒绝",
- "K3fbe7511": "发布异常",
- "Ke64e695c": "发布中",
- "K1f89176d": "申请方所属团队",
- "K69827c60": "发布状态",
- "K8f7abcab": " 次",
- "K28cf9613": "每分钟",
- "K18f25019": "每5分钟",
- "Kf00f01ca": "每小时",
- "Kfcda87fc": "每天",
- "K29ec75dc": "每周",
- "Ke1b1865": "私有网络",
- "K4786c57c": "公共网络"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/oldJson/en-US.json b/frontend/packages/common/src/locales/scan/oldJson/en-US.json
deleted file mode 100644
index 3ec14af5..00000000
--- a/frontend/packages/common/src/locales/scan/oldJson/en-US.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Kd55c6887": "Review"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/oldJson/ja-JP.json b/frontend/packages/common/src/locales/scan/oldJson/ja-JP.json
deleted file mode 100644
index c8660395..00000000
--- a/frontend/packages/common/src/locales/scan/oldJson/ja-JP.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Kd55c6887": "レビュー"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/oldJson/zh-CN.json b/frontend/packages/common/src/locales/scan/oldJson/zh-CN.json
deleted file mode 100644
index 32e7815f..00000000
--- a/frontend/packages/common/src/locales/scan/oldJson/zh-CN.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Kd55c6887": "审核"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/oldJson/zh-TW.json b/frontend/packages/common/src/locales/scan/oldJson/zh-TW.json
deleted file mode 100644
index 95a68019..00000000
--- a/frontend/packages/common/src/locales/scan/oldJson/zh-TW.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "Kd55c6887": "審核"
-}
\ No newline at end of file
diff --git a/frontend/packages/common/src/locales/scan/zh-CN.json b/frontend/packages/common/src/locales/scan/zh-CN.json
index 85b8c200..41ee376a 100644
--- a/frontend/packages/common/src/locales/scan/zh-CN.json
+++ b/frontend/packages/common/src/locales/scan/zh-CN.json
@@ -5,7 +5,7 @@
"Kb58e0c3f": "服务",
"Kc9e489f5": "团队",
"K61c89f5f": "API 市场",
- "K16d71239": "仪表盘",
+ "K16d71239": "分析报告",
"K714c192d": "调用统计",
"Kd57dfe97": "拓扑图",
"K3fe97dcc": "系统设置",
diff --git a/frontend/packages/common/src/locales/scan/zh-TW.json b/frontend/packages/common/src/locales/scan/zh-TW.json
index 73f32c9b..0cf359f4 100644
--- a/frontend/packages/common/src/locales/scan/zh-TW.json
+++ b/frontend/packages/common/src/locales/scan/zh-TW.json
@@ -5,7 +5,7 @@
"Kb58e0c3f": "服務",
"Kc9e489f5": "團隊",
"K61c89f5f": "API 市場",
- "K16d71239": "儀表板",
+ "K16d71239": "分析報告",
"K714c192d": "調用統計",
"Kd57dfe97": "拓撲圖",
"K3fe97dcc": "系統設置",
diff --git a/frontend/packages/core/src/App.css b/frontend/packages/core/src/App.css
index 3b3d4e57..eee93cd3 100644
--- a/frontend/packages/core/src/App.css
+++ b/frontend/packages/core/src/App.css
@@ -248,4 +248,27 @@ a{
}
.ai-service-api-preview .swagger-ui h3.opblock-tag{
display: none;
-}
\ No newline at end of file
+}
+
+ /* 整个背景容器设置 */
+ .background-container {
+ background: radial-gradient(ellipse 80% 900px at top, rgb(255 255 255 / 10%) 0%, rgb(4 0 71) 30%, rgb(13 17 23) 100%);
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100vh;
+ overflow: hidden;
+ z-index: 1;
+ isolate: isolate;
+ }
+
+ /* SVG背景图案 */
+ .background-pattern {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ stroke: rgba(255, 255, 255, 0.1);
+ mask-image: radial-gradient(100% 100% at top right, white, transparent);
+ }
diff --git a/frontend/packages/core/src/pages/Login.tsx b/frontend/packages/core/src/pages/Login.tsx
index 7055699f..1a872229 100644
--- a/frontend/packages/core/src/pages/Login.tsx
+++ b/frontend/packages/core/src/pages/Login.tsx
@@ -2,10 +2,10 @@ import {FC, useCallback, useEffect, useRef, useState} from "react";
import {App, Button, Divider, Form, FormInstance, Input, Tooltip} from "antd";
import {useGlobalContext} from "@common/contexts/GlobalStateContext.tsx";
import {useFetch} from "@common/hooks/http.ts";
-import {BasicResponse, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
+import {BasicResponse, STATUS_CODE} from "@common/const/const.tsx";
import {useNavigate} from "react-router-dom";
// import {useCrypto} from "../hooks/crypto.ts";
-import Logo from '@common/assets/logo.png'
+import Logo from '@common/assets/layout-logo.png'
import { $t } from "@common/locales";
import { Icon } from "@iconify/react/dist/iconify.js";
import LanguageSetting from "@common/components/aoplatform/LanguageSetting";
@@ -100,9 +100,46 @@ const Login:FC = ()=> {
}, []);
return (
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/*
*/}
+
{
{$t('Version (0)-(1)',[state.version,state.updateDate])}
{$t(state.powered)}
+
diff --git a/frontend/packages/market/src/pages/serviceHub/ServiceHubDetail.tsx b/frontend/packages/market/src/pages/serviceHub/ServiceHubDetail.tsx
index d7747c32..6e493606 100644
--- a/frontend/packages/market/src/pages/serviceHub/ServiceHubDetail.tsx
+++ b/frontend/packages/market/src/pages/serviceHub/ServiceHubDetail.tsx
@@ -1,7 +1,7 @@
import {Link, useNavigate, useParams} from "react-router-dom";
import {RouterParams} from "@core/components/aoplatform/RenderRoutes.tsx";
import { App, Avatar, Button, Descriptions, Divider, Tabs} from "antd";
-import { useEffect, useRef, useState} from "react";
+import { useEffect, useMemo, useRef, useState} from "react";
import {useBreadcrumb} from "@common/contexts/BreadcrumbContext.tsx";
import {BasicResponse, RESPONSE_TIPS, STATUS_CODE} from "@common/const/const.tsx";
import {useFetch} from "@common/hooks/http.ts";
@@ -34,11 +34,29 @@ const ServiceHubDetail = ()=>{
const [service, setService] = useState
()
const navigate = useNavigate();
+ const modifyApiDoc = (apiDoc:string, apiPrefix:string)=>{
+ if(!apiDoc) return ''
+ if(!apiPrefix) return apiDoc
+ try{
+ const openApiSpec = JSON.parse(apiDoc);
+ // 遍历并修改 paths,给每个路径添加前缀
+ const modifiedPaths:Record = {};
+ for (const [path, pathItem] of Object.entries(openApiSpec.paths)) {
+ modifiedPaths[apiPrefix + path] = pathItem;
+ }
+ openApiSpec.paths = modifiedPaths;
+ return JSON.stringify(openApiSpec);
+ }catch(err){
+ console.warn('拼接api前缀失败',err)
+ }
+ return apiDoc
+ }
+
const getServiceBasicInfo = ()=>{
fetchData>('catalogue/service',{method:'GET',eoParams:{service:serviceId}, eoTransformKeys:['app_num','api_num','update_time','api_doc','invoke_address','approval_type','service_kind']}).then(response=>{
const {code,data,msg} = response
if(code === STATUS_CODE.SUCCESS){
- setService(data.service)
+ setService({...data.service,apiDoc:modifyApiDoc(data.service.apiDoc, data.service.basic?.invokeAddress)})
setServiceBasicInfo(data.service.basic)
setServiceName(data.service.name)
setServiceDesc(data.service.description)
diff --git a/readme/readme-jp.md b/readme/readme-jp.md
index cfded906..b46c9752 100644
--- a/readme/readme-jp.md
+++ b/readme/readme-jp.md
@@ -1,7 +1,7 @@

- English
+ English
|
日本語
|
@@ -61,109 +61,100 @@ curl -sSO https://download.apipark.com/install/quick-start.sh; bash quick-start.
- 主要なAIプロバイダの100以上の大規模モデルに接続
+ 100以上のAIモデルに迅速に接続
- すべてのAI APIの呼び出しフォーマットを統一し、追加の適応作業は不要
+ 統一されたAPIフォーマットで全てのAIを呼び出し
-
- APIサービスプラザはAPIParkの中心機能の1つであり、企業内部のAPIが分散し、管理が混乱している問題を解決することを目指しています。APIサービスプラザを通じて、企業はすべてのAPIサービスを統一されたプラットフォームで集中表示し、異なる部門やチームが必要なAPIサービスを簡単に見つけて使用できるようにします。
+
+
+
+
+
+
+
+
+
+ プロンプトテンプレートをREST APIにワンクリックで変換
+
+
+ チーム内でAPIサービスを迅速に共有
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Nginxに匹敵する高性能
+
+
+ APIの設計、公開、呼び出し、停止までをワンストップで対応
+
+
+
+
+
+
+
- APIのライフサイクル管理機能は、APIの管理プロセスを標準化し、トラフィック転送や負荷分散を管理し、外部に公開されるすべてのAPIバージョンを管理します。これにより、APIの品質と保守性が向上し、企業は効率的なAPI開発と安定した運用を実現でき、ビジネスの急速な成長とイノベーションをサポートします。
-
-
-
-
-
- AIモデルとプロンプトを組み合わせ、新しいAI APIを作成
-
-
- AIモデルを切り替えたり、プロンプトを変更しても、アプリやマイクロサービスに影響を与えない
-
-
-
-
-
-
-
- APIサービスプラザはAPIParkの中心機能の1つであり、企業内部のAPIが分散し、管理が混乱している問題を解決することを目指しています。APIサービスプラザを通じて、企業はすべてのAPIサービスを統一されたプラットフォームで集中表示し、異なる部門やチームが必要なAPIサービスを簡単に見つけて使用できるようにします。
-
-
-
- APIのライフサイクル管理機能は、APIの管理プロセスを標準化し、トラフィック転送や負荷分散を管理し、外部に公開されるすべてのAPIバージョンを管理します。これにより、APIの品質と保守性が向上し、企業は効率的なAPI開発と安定した運用を実現でき、ビジネスの急速な成長とイノベーションをサポートします。
-
-
-
-
-
- すべてのAI / REST APIを一元管理および表示
-
-
- APIの設計、公開、運用、廃止までの全過程をカバー
-
-
-
-
-
-
-
- APIサービスプラザはAPIParkの中心機能の1つであり、企業内部のAPIが分散し、管理が混乱している問題を解決することを目指しています。APIサービスプラザを通じて、企業はすべてのAPIサービスを統一されたプラットフォームで集中表示し、異なる部門やチームが必要なAPIサービスを簡単に見つけて使用できるようにします。
-
-
-
- APIのライフサイクル管理機能は、APIの管理プロセスを標準化し、トラフィック転送や負荷分散を管理し、外部に公開されるすべてのAPIバージョンを管理します。これにより、APIの品質と保守性が向上し、企業は効率的なAPI開発と安定した運用を実現でき、ビジネスの急速な成長とイノベーションをサポートします。
- 複数のテナントを管理し、データの分離とセキュリティを確保
+ テナントのAPI呼び出しリクエストを承認
- APIリソースの利用には申請と承認が必要
+ マルチテナント管理
-
-
- マルチテナント管理機能は、企業が1つのプラットフォームで複数のテナントを管理する能力を提供します。各テナントは独立したリソース、ユーザー、権限設定を持つことができ、データと操作の分離を確保し、リソース利用効率と管理の利便性を向上させます。
-
- APIParkはすべてのAPIリソースにプロセス承認機能を提供し、違反やプラットフォームを回避したAPIの呼び出しを防ぎます。呼び出し元はAPIリソースを申請し、サービス提供者の承認後に正式にAPIを利用できます。
+
+
+
- 詳細な呼び出しログを使用して、任意の時点でAPIアクセス状況を調査
+ 全てのAPI呼び出しを詳細に記録
- 豊富な統計レポート*
+ 強力なデータ分析機能
- API呼び出しログ機能は、企業に包括的なログ記録機能を提供し、すべてのAPI呼び出しに関する関連情報を詳細に記録します。これらのログを使用して、企業はAPI呼び出しにおける問題を迅速に追跡し、トラブルシューティングを行い、システムの安定運用とデータセキュリティを確保します。
- 過去の呼び出しデータを分析することで、APIParkはAPIの長期的な呼び出しトレンドとパフォーマンスの変化を表示し、企業が問題が発生する前に予防的なメンテナンスを行うのに役立ちます。
+
# 🚀 使用ケース
diff --git a/readme/readme-zh-cn.md b/readme/readme-zh-cn.md
index db1070dd..d1af567f 100644
--- a/readme/readme-zh-cn.md
+++ b/readme/readme-zh-cn.md
@@ -1,7 +1,7 @@

- English
+ English
|
日本語
|
@@ -62,104 +62,94 @@ curl -sSO https://download.apipark.com/install/quick-start.sh; bash quick-start.