jojo/routers/api/v1/swagger/package.go
Myers Carpenter 00b457e291 feat: Add header annotations for accurate API documentation (#9380)
This will help api packages like https://codeberg.org/Cyborus/forgejo-api to generate clients that expose the header information as well. Currently `forgejo-api` has to edit the swagger json to generate a client crate that knows about headers.

- Create separate response types for different endpoint behaviors
- CommitList: Base type with only X-Total-Count header
- CommitListWithPagination: For GetPullRequestCommits (pagination headers + X-Total-Count)
- CommitListWithLegacyPagination: For GetAllCommits (pagination headers + X-Total-Count + deprecated X-Total)
- ChangedFileList: Base type with only X-Total-Count header
- ChangedFileListWithPagination: For GetPullRequestFiles (pagination headers + X-Total-Count)

This ensures swagger documentation accurately reflects which headers each endpoint returns.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9380
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Cyborus <cyborus@disroot.org>
Co-authored-by: Myers Carpenter <myers@maski.org>
Co-committed-by: Myers Carpenter <myers@maski.org>
2026-01-06 10:29:15 +01:00

32 lines
642 B
Go

// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package swagger
import (
api "forgejo.org/modules/structs"
)
// Package
// swagger:response Package
type swaggerResponsePackage struct {
// in:body
Body api.Package `json:"body"`
}
// PackageList
// swagger:response PackageList
type swaggerResponsePackageList struct {
// in:body
Body []api.Package `json:"body"`
// The total number of packages
TotalCount int64 `json:"X-Total-Count"`
}
// PackageFileList
// swagger:response PackageFileList
type swaggerResponsePackageFileList struct {
// in:body
Body []api.PackageFile `json:"body"`
}