> ## Documentation Index
> Fetch the complete documentation index at: https://docs.profy.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# Portal 应用市场：浏览、搜索与收藏

> Profy Portal 应用市场介绍：用户无需登录即可浏览应用分类、搜索应用、管理收藏夹，并探索技能目录，开放数据访问与公开浏览能力。

# 应用市场

Portal 应用市场是 Profy 面向消费者的统一应用入口。用户可以浏览分类、搜索应用、查看技能详情并管理收藏。市场的公开接口无需登录即可访问，降低发现门槛。

## 概述

```mermaid theme={null}
graph LR
    User[用户] --> Portal["Portal 市场"]

    Portal --> Browse["分类浏览"]
    Portal --> Hot["热门推荐"]
    Portal --> Search["搜索应用"]
    Portal --> Fav["收藏管理"]
    Portal --> Skills["技能发现"]

    Browse --> Detail["应用详情"]
    Hot --> Detail
    Search --> Detail
    Detail --> Task["创建任务"]

    style Portal fill:#e8faf0,stroke:#10b981
```

## 核心功能

### 应用分类

应用按业务类型组织为多个分类，支持国际化标签。分类数据通过 `appCategories` + `appCategoryLocales` 表存储，前端根据用户语言偏好自动展示对应名称。

### 热门应用

首页展示热门应用推荐，由 `/api/market/application/hot` 接口返回，无需登录即可查看。

### 应用详情

每个应用拥有唯一的 `appUuid`，详情页展示完整描述、输入参数定义、定价信息和关联技能。

### 收藏管理

登录用户可以收藏/取消收藏应用，并通过收藏列表快速访问常用应用。收藏数据通过 `applicationFavorites` 表持久化。

### 技能列表

技能（Skill）是应用的原子能力单元，可独立浏览和搜索。技能详情包含描述、参数定义和关联的应用信息。

## 数据模型

```mermaid theme={null}
erDiagram
    AppCategory ||--o{ AppCategoryLocale : "多语言"
    AppCategory ||--o{ Application : "包含"
    Application ||--o{ ApplicationFavorite : "被收藏"
    Application ||--o{ Skill : "关联"
    User ||--o{ ApplicationFavorite : "收藏"

    Application {
        string appUuid PK
        string name
        string description
        string icon
        int categoryId
        json inputParams
        decimal price
    }

    Skill {
        string skillUuid PK
        string name
        string description
        json parameters
    }
```

## API 接口

### 公开接口（无需认证）

公开接口在 Auth Filter 中通过 `PUBLIC_PREFIXES` 白名单放行，无需携带 Token。

| 方法   | 路径                                        | 说明       |
| ---- | ----------------------------------------- | -------- |
| GET  | `/api/market/category/list`               | 获取应用分类列表 |
| POST | `/api/market/application/list`            | 分页查询应用列表 |
| GET  | `/api/market/application/detail/:appUuid` | 应用详情     |
| GET  | `/api/market/application/hot`             | 热门应用推荐   |
| POST | `/api/market/skill/list`                  | 分页查询技能列表 |
| POST | `/api/market/skill/detail`                | 技能详情     |

### 需要认证的接口

| 方法   | 路径                                      | 说明   |
| ---- | --------------------------------------- | ---- |
| POST | `/api/market/application/favorite`      | 收藏应用 |
| POST | `/api/market/application/unfavorite`    | 取消收藏 |
| POST | `/api/market/application/favorite/list` | 收藏列表 |

### 请求/响应示例

**查询应用列表：**

```json theme={null}
// POST /api/market/application/list
{
  "categoryId": 1,
  "keyword": "翻译",
  "page": 1,
  "pageSize": 20
}
```

**响应格式：**

```json theme={null}
{
  "code": 0,
  "data": {
    "list": [
      {
        "appUuid": "app-xxxxx",
        "name": "智能翻译",
        "description": "多语言实时翻译",
        "icon": "https://...",
        "categoryId": 1
      }
    ],
    "total": 42,
    "page": 1,
    "pageSize": 20
  }
}
```

## 前端页面

| 路径                           | 功能             |
| ---------------------------- | -------------- |
| `/[locale]/market`           | 市场首页，分类浏览 + 搜索 |
| `/[locale]/market/[appUuid]` | 应用详情页          |
| `/[locale]/favorites`        | 收藏列表           |

前端使用 `@profy/fetch` 的 `market` 子模块进行类型安全的 API 调用，所有接口自动携带分页参数和用户 Token。

## 接入流程

```mermaid theme={null}
sequenceDiagram
    participant U as 用户
    participant W as Web
    participant C as Core API

    U->>W: 打开市场首页
    W->>C: GET /api/market/category/list
    C-->>W: 分类列表
    W->>C: POST /api/market/application/list
    C-->>W: 应用列表
    W-->>U: 渲染市场页面

    U->>W: 点击应用
    W->>C: GET /api/market/application/detail/:appUuid
    C-->>W: 应用详情 + 输入参数定义
    W-->>U: 展示详情页

    U->>W: 创建任务
    W->>C: POST /api/task/create {appUuid, params}
    C-->>W: 任务创建成功
```

## 相关链接

<CardGroup cols={2}>
  <Card title="任务调度" icon="list-check" href="/zh/documentation/tasks">
    从市场发现应用到创建和执行任务
  </Card>

  <Card title="Agent 平台" icon="robot" href="/zh/documentation/agent">
    Expert 技能市场与 Agent 实例管理
  </Card>
</CardGroup>
