Errors Creating C# Client with OpenAPI specification

I’m trying to create an API client in Visual Studio using the OpenAPI specification provided in the documentation. I’m getting a lot of errors saying it doesn’t match the OpenAPI schema. The first it that the header objects in the raw response are not formatted properly. Here is the error.

Unexpected initial token 'String' when populating object. Expected JSON object or array. Path 'paths['/label/{label_id}/raw/'].get.responses.200.headers.cache-control', line 1540, position 40.

Thanks for your help.

So looking a little closer I do see some issues with the spec. Notice the spec for deleting a shipper

    "/shipper/{shipper_id}/": {
      "delete": {
        "tags": [
          "Shipper"
        ],
        "summary": "Archive a Shipper",
        "description": "Set an archive date on a Shipper and hide it from responses",
        "operationId": "ShipperByShipperId_DELETE",
        "parameters": [
          {
            "200": {
              "description": "Shipper successfully archived",
              "content": {
                "application/json": {
                  "schema": {
                    "$ref": "#/components/schemas/ShipperResponse"
                  }
                }
              }
            },
            "404": {
              "description": "No shipper found"
            },
            "name": "shipper_id",
            "in": "path",
            "description": "",
            "required": true,
            "style": "simple",
            "schema": {
              "type": "string"
            }
          }
        ],
        "deprecated": false
      },

Notice the responses are in the ‘parameter’ property. Definitely not right. You can even see this reflected in the API documentation here:

https://docs.ordoro.com/#operation/ShipperByShipperId_DELETE

Notice there are no examples or responses shown.

Thanks for the info @chriss

We didn’t have the intention of having the spec create a client, we use it for doc generation and internally. We could look into this, but it is definitely not in our roadmap at this time.

Thank you for your reply, Sophie. That makes sense. I was able to get it to work by removing all but the order endpoints and then fixing those paths plus any associated schemas. It took some time but I can work around it.

If you do decide to put this in your roadmap, I think you’ll find that there are some amazing benefits you get from using the OpenAPI specification to it’s fullest extent. Developers simply annotate their code and the tools generate the spec and the documentation with a single command. So it will save a lot of time for your developers and documenters. On the other end, custom integrations can be done by simply importing the spec and all the classes and methods necessary to talk to the Ordoro API are generated on the fly. It’s a huge time saver.

Thanks again. Cheers!