Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fail to generate the queries of Camunda 7 openapi.yaml #113

Closed
sac-varadise opened this issue May 14, 2024 · 4 comments · Fixed by #115
Closed

Fail to generate the queries of Camunda 7 openapi.yaml #113

sac-varadise opened this issue May 14, 2024 · 4 comments · Fixed by #115
Assignees
Labels
bug Something isn't working

Comments

@sac-varadise
Copy link

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)
@seriouslag
Copy link
Collaborator

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

@sac-varadise
Copy link
Author

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)

@seriouslag
Copy link
Collaborator

seriouslag commented May 16, 2024

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
Copy link
Collaborator

This will be fixed in #115

@seriouslag seriouslag self-assigned this May 16, 2024
@seriouslag seriouslag added the bug Something isn't working label May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants