GithubHelp home page GithubHelp logo

Comments (8)

ralfhandl avatar ralfhandl commented on June 29, 2024

Batch Requests are very important and have been significantly enhanced with OData V4.

We even introduced JSON Batch Format because the multipart format isn't for the faint of heart.

However: Swagger UI has no support for multipart request bodies, so showing the /$batch path in Swagger/OpenAPI wouldn't help much for those unfamiliar with OData. And those familiar with OData will know that it is there, and how to use it.

What documentation would you expect on the /$batch path in addition to a link to the OData specification?

from odata-openapi.

Tiberriver256 avatar Tiberriver256 commented on June 29, 2024

Maybe just a POST /batch$ endpoint, a short description and a link to the OData specification or OData documentation?

Just so developers are aware.

from odata-openapi.

fbunsmann avatar fbunsmann commented on June 29, 2024

I would agree that a short description and a link to the ODATA Specification would definitely help. Below is just a first idea how it could look like in swagger 2.0. Of course it would be great it if the example for this endpoint would use one or more endpoints which actually exist in the specification.

paths:
  /$batch:
    post:
      summary: Using the $batch endpoint, multiple requests can be bundled into a single one.
      description: Group multiple operations into a single HTTP request payload, see [Batch Requests](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part1-protocol/odata-v4.01-cs01-part1-protocol.html#sec_BatchRequests). **Please be aware that the try it out functionality is not supported** for this request.
      parameters:
        - name: Host
          in: header
          type: string
          description: Host URL of the service
        - name: Content-Type
          in: header
          type: string
          required: true
          description: Payload Content-Type, e. g. multipart/mixed;boundary=batch_36522ad7-fc75-4b56-8c71-56071383e77b
        - in: body
          name: payload
          schema:
            type: string
            example: |
             --batch_36522ad7-fc75-4b56-8c71-56071383e77b
              Content-Type: application/http 
              
              GET /service/Customers('ALFKI') 
              Host: host
              
              
              --batch_36522ad7-fc75-4b56-8c71-56071383e77b 
              Content-Type: application/http 
              
              GET /service/Products HTTP/1.1 
              Host: host 
              
              
              --batch_36522ad7-fc75-4b56-8c71-56071383e77b--
      responses:
        202:
          description: Batch request accepted
        default:
          $ref: '#/responses/error'

from odata-openapi.

ralfhandl avatar ralfhandl commented on June 29, 2024

@fbunsmann and @Tiberriver256 please have a look at this example with /$batch: does that meet your requirements?

Added an example for Swagger 2.0 with /$batch - here "Try it out" actually works.

from odata-openapi.

ralfhandl avatar ralfhandl commented on June 29, 2024

Opened issue for Swagger UI to find out how to get OpenAPI 3.0 example working: swagger-api/swagger-ui#5090

from odata-openapi.

Tiberriver256 avatar Tiberriver256 commented on June 29, 2024

Yes! That looks excellent. Thank you!

from odata-openapi.

fbunsmann avatar fbunsmann commented on June 29, 2024

Also think that looks really good. Thanks Ralf!

from odata-openapi.

ralfhandl avatar ralfhandl commented on June 29, 2024

Transformation now produces /$batch path items, see e.g. TripPin example

from odata-openapi.

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.