Skip to content

Missing trailing slash #154

@myrho

Description

@myrho

Thank you for your tremendous work on this package!
I have found this issue:

Given this spec

{
  "openapi": "3.1.0",
  "info": {
    "title": "API",
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://example.com"
    }
  ],
  "paths": {
    "/api/v1/product/": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "List Products",
        "operationId": "Product-list_products",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  },
                  "type": "array",
                  "title": "Response Product-List Products"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Product": {
        "properties": {
          "Artikelnr": {
            "type": "string",
            "title": "Artikelnr"
          }
        },
        "type": "object",
        "required": [
          "Artikelnr"
        ],
        "title": "Product"
      }
    }
  }
}

which contains a path with a trailing slash, elm-open-api 0.7.0 generates:

productListProductsRisky config =
    Http.riskyRequest
        { url =
            Url.Builder.crossOrigin
                "https://example.com"
                [ "api", "v1", "product" ]
                []
        , method = "GET"
        , headers = []
        , expect =
            OpenApi.Common.expectJsonCustom
                config.toMsg
                (Dict.fromList [])
                (Json.Decode.list Api.Json.decodeProduct)
        , body = Http.emptyBody
        , timeout = Nothing
        , tracker = Nothing
        }

which in turn results in a request to the endpoint without the trailing slash.

I would expect the generated request paths to exactly match the spec.

This was a related issue: #72

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomers

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions