Skip to content

[haskell][server] Export the Wai Application for the server#9801

Merged
wing328 merged 1 commit intoOpenAPITools:masterfrom
Profpatsch:master
Jul 13, 2021
Merged

[haskell][server] Export the Wai Application for the server#9801
wing328 merged 1 commit intoOpenAPITools:masterfrom
Profpatsch:master

Conversation

@Profpatsch
Copy link
Copy Markdown
Contributor

For tests it’s useful to have direct access to the Wai Application,
which is the plain function from Request to Response.

Then you don’t need to use a full-blown http server to run requests.

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh
    ./bin/utils/export_docs_generators.sh
    
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master, 5.1.x, 6.0.x
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

@Profpatsch
Copy link
Copy Markdown
Contributor Author

Is there a good way to re-generate only the haskell template files? cc @wing328

For tests it’s useful to have direct access to the Wai `Application`,
which is the plain function from `Request` to `Response`.

Then you don’t need to use a full-blown http server to run requests.
@wing328
Copy link
Copy Markdown
Member

wing328 commented Jun 23, 2021

Please run ./bin/generate-samples.sh ./bin/configs/other/haskell-servant.yaml instead.

@wing328
Copy link
Copy Markdown
Member

wing328 commented Jun 23, 2021

@Profpatsch thanks for the PR. Is it correct to say this change is backward-compatible ?

@wing328
Copy link
Copy Markdown
Member

wing328 commented Jun 23, 2021

Tested locally with updated samples and the result is good:

[INFO] --- exec-maven-plugin:1.6.0:exec (compile-test) @ HaskellServantServerTests ---
openapi-petstore-0.1.0.0: unregistering (local file changes: lib/OpenAPIPetstore/API.hs)
openapi-petstore> configure (lib)
Configuring openapi-petstore-0.1.0.0...
openapi-petstore> build (lib)
Preprocessing library for openapi-petstore-0.1.0.0..
Building library for openapi-petstore-0.1.0.0..
[1 of 2] Compiling OpenAPIPetstore.Types
[2 of 2] Compiling OpenAPIPetstore.API
openapi-petstore> copy/register
Installing library in /Users/williamcheng/Code/openapi-generator/samples/server/petstore/haskell-servant/.stack-work/install/x86_64-osx/83049dd954ab3eb224bb8bb53f8b4cb9c5d21f487e07dc4cb446560830507f4a/8.6.5/lib/x86_64-osx-ghc-8.6.5/openapi-petstore-0.1.0.0-6jIYP8FqYVJIycXmp8ztms
Registering library for openapi-petstore-0.1.0.0..
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:14 min
[INFO] Finished at: 2021-06-23T15:43:39+08:00
[INFO] ------------------------------------------------------------------------

@wing328 wing328 modified the milestones: 5.2.0, 5.2.1 Jul 13, 2021
@wing328
Copy link
Copy Markdown
Member

wing328 commented Jul 13, 2021

thanks for the PR. Is it correct to say this change is backward-compatible ?

No expert in Haskell but looks like the change is backward-compatible. We'll give this PR a go.

@wing328 wing328 merged commit 7bd633f into OpenAPITools:master Jul 13, 2021
@Profpatsch
Copy link
Copy Markdown
Contributor Author

Sorry didn’t check github notifications in a while.

Yes, this check just adds a new function to expose an intermediate result (the definition of the http server application).
Thank you for merging!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants