[BUG][Haskell]Faulty generation for responses with no content
Created by: mgajda
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
Have you tested with the latest master to confirm the issue still exists? -
Have you searched for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
All responses are assumed to have non-empty content, and generated Haskell code tries to parse the missing response body. This makes responses with no body non-functional.
openapi-generator version
Git commit: 77e1ca56cf329bfb22b05f853587263fd0ff6503
(June 16th 2021)
Version in pom.xml
is 5.2.0-SNAPSHOT
.
OpenAPI declaration file content or url
Here is an example input spec:
openapi: 3.0.0
info:
description: Minimal failing example
version: "1.0.0"
title: Minimal API
contact:
email: mjgajda@migamake.com
paths:
/session:
post:
summary: start session
operationId: startSession
responses:
'201':
description: session created
'404':
description: service offline
Generation Details
This will generate API that declares JSON object on the output:
type MinimalAPI
= "session" :> Verb 'POST 200 '[JSON] () -- 'startSession' route
:<|> Raw
This suggests that we have a content that conforms to InlineResponse201
.
Attempt to use this endpoint when fail when trying to parse missing response body.
Steps to reproduce
Copy paste spec.yaml
above and run:
openapi-generator-cli generate -i spec.yaml -g haskell
Suggest a fix
This change of the generated code works:
type MinimalAPI
= "session" :> Verb 'POST 204 '[JSON] NoContent -- 'startSession' route
:<|> Raw