feat: parse and expose OpenAPI operation tags

Open
#116 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
kotlin, openapi
Domain
api, mobile-dev

Research direction

Read OpenApiDocument.kt, OpenApiParser.kt, MockConfiguration.kt, and NetworkMockEndpointScreen.kt to trace parsing, the public Operation model, and existing grouping UI. Inspect MockConfigRepositoryTest.kt and sample specs for fixture patterns, then resolve the FilterChip versus sticky-header choice with maintainers before implementation. Done means tags are parsed, exposed, represented in a fixture and tests, documented, reflected in the API dump, and supported by the chosen UI.

Written by the indexing model from the issue text.

Description

enhancement

Summary

Follow-up from #114. That issue's design deliberately deferred OpenAPI tags support: no spec in this repo (sample or test fixture) currently declares tags, so parsing and surfacing them would be speculative work with no real usage to validate against — parser change, public API change to Operation, sample-spec edits, doc updates, and new tests, all for a field nobody currently emits.

OpenApiDocument.kt's file KDoc already documents this as a deliberate, currently-unparsed field: "Only fields consumed by OpenApiParser are modeled. Everything else in a real spec (deprecated, tags, security, request bodies, schemas, …) is silently ignored via lenient/non-strict decoding."

Scope, when picked up

  • Add tags: List<String> = emptyList() to the internal OperationObject (devview-networkmock-core/src/commonMain/kotlin/com/worldline/devview/networkmock/core/openapi/OpenApiDocument.kt) and thread it into the public Operation model (MockConfiguration.kt) via OpenApiParser.kt.
  • This is a public API change to Operation — requires :devview-networkmock-core:apiDump and doc updates (docs/modules/networkmock-core.md, module CLAUDE.md).
  • UI: either a third FilterChip row (mutually exclusive with "no groups" for untagged specs — same hidden-when-empty pattern as the version and method rows added in #114), or sticky-header grouping in the operation list (precedent: NetworkMockEndpointScreen.kt's existing stickyHeader grouping by status-code family).
  • Needs at least one test fixture spec with tags declared — none currently exist in MockConfigRepositoryTest.kt's inline JSON, the sample app's specs, or anywhere else in the repo.

Open question

Chip row vs. sticky-header grouping — resolve at design time before implementing, not here (same as #114's original open-questions approach).

Dominant language
Kotlin
Stars
10
Forks
2
Avg merge
2d 14h
Merged PRs (30d)
13

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from worldline/devview

All issues in worldline/devview

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.