gomods/athens

[Proposal] Improve the catalog endpoint format

Aperta

#1186 aperta il 13 apr 2019

 (22 commenti) (0 reazioni) (0 assegnatari)Go (538 fork)github user discovery
enhancementgood first issue

Metriche repository

Star
 (4766 stelle)
Metriche merge PR
 (Merge medio 18g 13h) (13 PR mergiate in 30 g)

Descrizione

Is your feature request related to a problem? Please describe.

Right now, utilities that want to use the /catalog endpoint often need to aggregate each module's versions into a list. For example, the /catalog endpoint returns this:

{
    "modules": [
        {
            "module":"github.com/arschles/assert",
            "version": "v1.0.0"
        },
        {
            "module": "github.com/arschles/assert",
            "version": "v1.1.0"
        }
    ]
}

Many programs will find it more convenient to get a response similar to this:

{
    "modules": {
        "github.com/arschles/assert": ["v1.0.0", "v1.1.0"]
    }
}

Describe the solution you'd like

I'd like us to add a V2 of the catalog API that responds this way. This could possibly be exposed as a /catalog/v2 endpoint.

Describe alternatives you've considered

Clients can always aggregate in their own code

Additional context

  • There will be non-trivial work on the storage systems to achieve this
  • There are two projects I know of that could benefit from this change:

cc/ @marwan-at-work

Guida contributor