openapi-react-query-codegen icon indicating copy to clipboard operation
openapi-react-query-codegen copied to clipboard

Fail to generate the queries of Camunda 7 openapi.yaml

Open sac-varadise opened this issue 1 year ago • 4 comments

Describe the bug I tried to generate the client with Camunda 7 openapi.yaml but it's failed via creating the queries.

To Reproduce Run the following command with the provided openapi.yaml openapi-rq -i ./openapi.yaml -o ./client -c axios --format prettier --debug

OpenAPI spec file openapi.yaml.zip

Expected behavior requests and queries folder code generate successfully.

  • OS: macOS
  • Version 14.4.1 (23E224)

sac-varadise avatar May 14 '24 11:05 sac-varadise

Please provide an openapi spec file or a link to one.

seriouslag avatar May 15 '24 06:05 seriouslag

Please provide an openapi spec file or a link to one.

The openapi.yaml was attached in the middle of the issue - OpenAPI spec file

Describe the bug I tried to generate the client with Camunda 7 openapi.yaml but it's failed via creating the queries.

To Reproduce Run the following command with the provided openapi.yaml openapi-rq -i ./openapi.yaml -o ./client -c axios --format prettier --debug

OpenAPI spec file openapi.yaml.zip

Expected behavior requests and queries folder code generate successfully.

  • OS: macOS
  • Version 14.4.1 (23E224)

sac-varadise avatar May 16 '24 02:05 sac-varadise

Thank you, i have reproduced an the issue with the file, seems the underlying service generator @hey-api/openapi-ts is fails to handle the error descriptions.

I created a minimal OpenAPI doc to reproduce the issue.

openapi: 3.0.2
info:
  title: Camunda Platform REST API
  description: OpenApi Spec for Camunda Platform REST API.
  version: 7.21.0
  license:
    name: Apache License 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
externalDocs:
  description: Find out more about Camunda Rest API
  url: 'https://docs.camunda.org/manual/7.21/reference/rest/overview/'
servers:
  - url: 'http://{host}:{port}/{contextPath}'
    description: The API server for the default process engine
    variables:
      host:
        default: localhost
      port:
        default: '8080'
      contextPath:
        default: engine-rest
  - url: 'http://{host}:{port}/{contextPath}/engine/{engineName}'
    description: The API server for a named process engine
    variables:
      host:
        default: localhost
      port:
        default: '8080'
      contextPath:
        default: engine-rest
      engineName:
        default: default
  - url: '{url}'
    description: The API server with a custom url
    variables:
      url:
        default: ''
tags:
  - name: Deployment
paths:
  /deployment/count:
    get:
      operationId: getDeploymentsCount
      tags:
        - Deployment
      summary: Get List Count
      description: >-
        Queries for the number of deployments that fulfill given parameters.
        Takes the same parameters as the

        [Get Deployments](https://docs.camunda.org/manual/7.21/reference/rest/deployment/get-query/)
        method.
      parameters:
        - name: id
          in: query
          schema:
            type: string
          description: Filter by deployment id
        - name: name
          in: query
          schema:
            type: string
          description: Filter by the deployment name. Exact match.
        - name: nameLike
          in: query
          schema:
            type: string
          description: >-
            Filter by the deployment name that the parameter is a substring of.
            The parameter can include the

            wildcard `%` to express like-strategy such as: starts with
            (`%`name), ends with (name`%`) or contains

            (`%`name`%`).
        - name: source
          in: query
          schema:
            type: string
          description: Filter by the deployment source.
        - name: withoutSource
          in: query
          schema:
            default: false
            type: boolean
          description: Filter by the deployment source whereby source is equal to `null`.
        - name: tenantIdIn
          in: query
          schema:
            type: string
          description: >-
            Filter by a comma-separated list of tenant ids. A deployment must
            have one of the given tenant ids.
        - name: withoutTenantId
          in: query
          schema:
            default: false
            type: boolean
          description: >-
            Only include deployments which belong to no tenant. Value may only
            be `true`, as `false` is the default

            behavior.
        - name: includeDeploymentsWithoutTenantId
          in: query
          schema:
            default: false
            type: boolean
          description: >-
            Include deployments which belong to no tenant. Can be used in
            combination with `tenantIdIn`. Value may

            only be `true`, as `false` is the default behavior.
        - name: after
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Restricts to all deployments after the given date.

            By
            [default](https://docs.camunda.org/manual/7.21/reference/rest/overview/date-format/),
            the date must have the format

            `yyyy-MM-dd'T'HH:mm:ss.SSSZ`, e.g., `2013-01-23T14:42:45.000+0200`.
        - name: before
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Restricts to all deployments before the given date.

            By
            [default](https://docs.camunda.org/manual/7.21/reference/rest/overview/date-format/),
            the date must have the format

            `yyyy-MM-dd'T'HH:mm:ss.SSSZ`, e.g., `2013-01-23T14:42:45.000+0200`.
      responses:
        '200':
          content:
            application/json:
              schema:
                type: string
          description: Request successful.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionDto'
          description: >-
            Returned if some of the query parameters are invalid, for example,
            if an invalid operator for variable

            comparison is used. See the
            [Introduction](https://docs.camunda.org/manual/7.21/reference/rest/overview/#error-handling)

            for the error response format.
components:
  schemas:
    ExceptionDto:
      title: ExceptionDto
      type: object
      properties:
        type:
          type: string
          nullable: true
          description: An exception class indicating the occurred error.
        message:
          type: string
          nullable: true
          description: A detailed message of the error.
        code:
          type: number
          description: >-
            The code allows your client application to identify the error in an
            automated fashion.

            You can look up the meaning of all built-in codes and learn how to
            add custom codes

            in the [User
            Guide](https://docs.camunda.org/manual/7.21/user-guide/process-engine/error-handling/#exception-codes).

seriouslag avatar May 16 '24 04:05 seriouslag

This will be fixed in #115

seriouslag avatar May 16 '24 04:05 seriouslag