> ## Documentation Index
> Fetch the complete documentation index at: https://oom-wg.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 获取模块列表

> 支持分页拉取，查询参数中不添加 `limit` 即返回 `offset` 后的全部



## OpenAPI

````yaml /apis/ssu/openapi.yml post /modules/list
openapi: 3.1.0
info:
  title: ShiroSU HTTP 接口
  version: 1.0.0
  description: |
    `suu man --server` 运行服务所提供的 HTTP 接口

    所有 HTTP 和 WebSocket 路由均以 `/api/v1/superuser` 作为根路径

    所有 HTTP 请求都通过 `Authorization` 请求头校验，
    所有 WebSocket 连接通过 `ws` 查询参数校验，临时一次性票证由 HTTP 请求 `POST /ws` 获取

    所有路径除了部分 `PUT`/`DELETE` 方法之外，任何请求都不会返回 `404`，
    返回 `404` 即说明请求的路径不存在也就是功能不支持/版本过时
servers:
  - url: http://{host}:{port}/api/v1/superuser
    description: ShiroSU 后端的本地或局域网地址
    variables:
      host:
        default: 127.0.0.1
      port:
        default: '5355'
security:
  - bearerAuth: []
tags:
  - name: WebSocket
  - name: 状态
  - name: 配置
  - name: 系统
  - name: 主题
  - name: 软件包
  - name: 模块
paths:
  /modules/list:
    post:
      tags:
        - 模块
      summary: 获取模块列表
      description: 支持分页拉取，查询参数中不添加 `limit` 即返回 `offset` 后的全部
      operationId: listModules
      parameters:
        - $ref: '#/components/parameters/Offset'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: 模块列表
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                    - info
                    - status
                  properties:
                    info:
                      $ref: '#/components/schemas/ModuleProp'
                    status:
                      type: object
                      required:
                        - disable
                        - remove
                        - update
                        - skipMount
                      properties:
                        disable:
                          type: boolean
                        remove:
                          type: boolean
                        update:
                          type: boolean
                        skipMount:
                          type: boolean
                        systemless:
                          type: boolean
                        action:
                          type: boolean
                        webui:
                          type: boolean
                        zygisk:
                          type: boolean
                        riru:
                          type: boolean
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    Offset:
      name: offset
      in: query
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    Limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
  schemas:
    ModuleProp:
      type: object
      required:
        - id
      properties:
        id:
          type: string
        name:
          type: string
        nameAnsi:
          type: string
        version:
          type: string
        versionAnsi:
          type: string
        versionCode:
          type: integer
          format: uint64
          minimum: 0
        author:
          type: string
        authorAnsi:
          type: string
        description:
          type: string
        descriptionAnsi:
          type: string
        actionDescription:
          type: string
        actionDescriptionAnsi:
          type: string
        metamodule:
          type: boolean
        updateJson:
          type: string
  responses:
    Forbidden:
      description: 鉴权失败，或 WebSocket 票证无效
    InternalServerError:
      description: 后端执行操作失败
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        后端管理密码

        同时支持 `Authorization: Bearer <password>` 和 `Authorization: <password>`

````