GithubHelp home page GithubHelp logo

Comments (7)

thowimmer avatar thowimmer commented on July 20, 2024 1

I'm looking for such a functionality as well.
I think the current approach is perfectly valid but it would be great to have the possibility to override the naming of a schema (using the terms of OpenAPI).
I'm happy to contribute if you provide me a direction on how you'd expect this feature to be implemented.

Some keypoints which come into mind:

  1. Should follow the test driven approach (no additional annotation processing etc)
  2. Should allow to document hierarchical object structures (how about inheritance & polymorphism ?)
  3. Intermediate format (resouce.json) needs to carry those information
  4. OpenAPI Spec generators needs to read those information (if present) and generate the according documentation

Maybe we can find an approach which allows the extension of schema details in the future:
Start with the naming of a schema and add additional options in the future

from restdocs-api-spec.

mduesterhoeft avatar mduesterhoeft commented on July 20, 2024 1

Thanks for your interest in this feature @thowimmer.

Sounds like a reasonable requirement. Currently we aggregate equal schemas. So it is not necessarily the case that each operation results in a set of schemas. So I am really not sure where to put such a function.

We need to keep the statement above in mind. This surely complicates things a little.

But generally I see two options:

Make the schema name an additional parameter that you can pass in your test
This would mean to add a schema name to ResourceSnippetParameters so it makes its way into ResourceModel and can thus be passed in the gradle plugin to OpenApi3Generator and OpenApi20Generator

Implement plugable naming strategies
We could also invent a set of different plugable naming strategies that one would parametrize in the gradle plugin.

from restdocs-api-spec.

thowimmer avatar thowimmer commented on July 20, 2024 1

Many thanks for your proposed options.
I vote for option 1 because I think that we need a richer ResourceModel which contains additional schema options,
A richer resource model will allow additional features (not just naming) just like:
#97

I will try to come up with a PR where we can discuss this in more detail in the next few weeks :-)

from restdocs-api-spec.

mduesterhoeft avatar mduesterhoeft commented on July 20, 2024

Sounds like a reasonable requirement. Currently we aggregate equal schemas. So it is not necessarily the case that each operation results in a set of schemas. So I am really not sure where to put such a function.

But if you have an idea, feel free to give it a try.

from restdocs-api-spec.

mgwoj avatar mgwoj commented on July 20, 2024

It could be additional arguments in MockMvcRestDocumentationWrapper.document to provide name of the request and response schema. Or maybe ResourceSnippetParameters.builder() could have additional methods for specifying that?

from restdocs-api-spec.

thowimmer avatar thowimmer commented on July 20, 2024

PR #116 deals with this issue.

from restdocs-api-spec.

mduesterhoeft avatar mduesterhoeft commented on July 20, 2024

closed with #126

from restdocs-api-spec.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.