Commit Graph

24 Commits

Author SHA1 Message Date
William Cheng
9adfe986a3 Prepare v7.20.0 release (#22738)
* Revert "v7.19.0 release (#22732)"

This reverts commit ff400e9a31.

* prepare v7.20.0 release

* update samples

* update doc
2026-01-20 03:13:58 +08:00
William Cheng
23eff6672f Prepare v7.19.0 snapshot (#22569)
* Revert "7.18.0 release (#22567)"

This reverts commit 51228436e0.

* prepare 7.19.0 snapshot

* update samples

* update doc

* fix date
2025-12-22 19:25:23 +08:00
William Cheng
f9d2b8b579 Prepare v7.18.0 release (#22250)
* Revert "v7.17.0 release (#22248)"

This reverts commit 0120486e62.

* prepare v7.18.0 release

* update samples

* update doc
2025-10-30 01:25:35 +08:00
William Cheng
885ea07b17 Prepare 7.17.0 (#22040)
* Revert "v7.16.0 release"

This reverts commit 31299af0fc.

* prepare 7.17.0-SNAPSHOT

* update doc, samples
2025-09-28 17:25:13 +08:00
Julien Debon
9c11fcf6bc [Fix][OCaml] Incorrect encoding/decoding for required free-form objects; Odoc for record fields (#21819)
* [OCaml] Fix inconsistent oneOf primitive sample name

* [OCaml] Fix encoding/decoding for free-form required fields

* [OCaml] Change field comment to Odoc, move it after the field

As per Odoc documentation, record field documentation should be *after* the
field, not before.
See https://ocaml.github.io/odoc/odoc/odoc_for_authors.html#special_comments
type `my_record`

* [OCaml] Cleanup non-generated files for ocaml sample
2025-08-26 18:59:11 +08:00
Julien Debon
3d93cc05ec [OCaml] Generate .ocamlformat file; format all generated OCaml files (#21809)
* [OCaml] Generate .ocamlformat file

Fixes https://github.com/OpenAPITools/openapi-generator/issues/21806

* [OCaml] Run `dune fmt` on all OCaml folders

* Don't format in Git

* Add myself for OCaml
2025-08-26 00:36:49 +08:00
Julien Debon
dc8fac21d9 [OCaml] Introduce support for oneOf/anyOf, fix default value for non-required maps (#21798)
* Add OCaml fake-petstore to test corner cases

* Prefix List functions with Stdlib as the fake petstore generates a List module

* Handle decimal and any types

* Indent to_json.mustache for easier maintenance

* Indent api-impl.mustache a bit more for readability before fix

* Fix: do not call `to_json` for free forms and byte arrays

Fixes https://github.com/OpenAPITools/openapi-generator/issues/21312

* Fix compilation for binary types

The implementation may not be correct, but at least it compiles. To be checked
if someday someone actually uses it/complains.

* Indent to_string.mustache

* Add support for exploded form-style object query params

Fixes https://github.com/OpenAPITools/openapi-generator/issues/21307

* Add ocaml-fake-petstore to CI

* Fix free-form body params

* Cohttp_lwt.Response is deprecated, use Cohttp.Response instead

* Safe Java code cleanup

* Split into model-record.mustache

* Add some support for oneOf/anyOf

* Re-generate all OCaml samples

* Fix: correctly mark non-required maps with default empty list

* Fix: Correctly encode/decode maps

* Refresh documentation

* Refresh after merging master
2025-08-25 17:27:27 +08:00
William Cheng
20be2decde Prepare v7.16.0 release (#21794)
* Revert "v7.15.0 release (#21792)"

This reverts commit 2c816f89cb.

* prepare 7.15.0 release

* update samples
2025-08-22 19:17:23 +08:00
Julien Debon
81be9cd409 OCaml: derive eq (#21679) 2025-08-02 12:32:44 +08:00
William Cheng
046be5dba1 Prepare 7.15.0 (#21445)
* Revert "v7.14.0 release (#21443)"

This reverts commit 5eb083e5ce.

* prepare v7.15.0 snapshot

* update samples

* update readme

* update doc
2025-06-25 21:34:58 +08:00
William Cheng
dbf720c093 Prepare 7.14.0 release (#21159)
* Revert "v7.13.0 release (#21157)"

This reverts commit 4b805ff6b7.

* prepare v7.14.0 release

* update samples
2025-04-27 22:04:03 +08:00
Julien Debon
123119c076 Add the dependencies in the generated Opam file (#20805) 2025-03-05 19:38:41 +08:00
William Cheng
890c758fd8 Add github workflow for OCaml samples (#20802)
* add github workflow for ocaml sample

* trigger build

* test with 5

* install dune

* install yojson

* install others

* install

* add name

* trigger build failure

* Revert "trigger build failure"

This reverts commit be35b26a83.

* test with 5

* pin versions
2025-03-05 18:07:44 +08:00
Julien Debon
0f13dfedb9 [OCaml] Fix default optional list (#20789)
* Cleanup the existing model template

* `{{^isContainer}}foobar{{/isContainer}}{{^isContainer}}` is equivalent to `{{^isContainer}}foobar`
* Add indentations to make it easier to read the template. The generated code is
uglier, but it is ok since users are encouraged to reformat anyway

* Add a default value for non-required lists

Closes https://github.com/OpenAPITools/openapi-generator/issues/20777
2025-03-05 01:41:21 +08:00
Julien Debon
90de8dcd75 [OCaml] Add key to each model field (#20766)
* Add key to each model field

Add a `[@key "someField"]` annotation to each model field, to avoid mismatches when the JSON field is not in snake_case.

Closes https://github.com/OpenAPITools/openapi-generator/issues/20765

* update ocaml samples

---------

Co-authored-by: William Cheng <wing328hk@gmail.com>
2025-03-04 16:49:27 +08:00
William Cheng
c6a4947523 fix ocaml readme installation (#12477) 2022-05-27 00:03:24 +08:00
Antonin Décimo
5cce050260 [OCaml] Code generation fixes (#12395)
* [ocaml] Open Lwt.Infix rather than Lwt

The Lwt module has functions that might shadow parameters, and all the
functions we use from Lwt are in Lwt.Infix too.

    File "src/apis/image_api.ml", line 13, characters 69-72:
    13 |     let uri = Request.maybe_add_query_param uri "all" string_of_bool all in
                                                                              ^^^
    Error: This expression has type 'a t list -> 'a list t
           but an expression was expected of type bool option

* [ocaml] update petstore samples
2022-05-26 23:54:13 +08:00
Frank T
ebac91aa32 [OCaml] Fix enum returnType in of_json.mustache for Api Impl (#8631)
* Fix OCaml enum returnType in of_json.mustache

* update samples (ocaml, python)

Co-authored-by: William Cheng <wing328hk@gmail.com>
2021-02-27 17:13:45 +08:00
William Cheng
202d184ce2 Migrate OCaml petstore to use OAS v3 spec (#6348)
* migrate ocaml petstore to use oas3

* break the build

* Revert "break the build"

This reverts commit a7c12d90fe.
2020-05-25 09:09:22 +08:00
Justin Black
d175673077 [OCAML] Fixes cloud.drone.io ocaml-test (#4501)
* Fixes ocaml-test

* Ocaml readme update
2019-11-17 09:23:15 +08:00
cgensoul
411199bc99 [OCaml] Added optional params support in API operations (#3568)
* Added handling of api keys in headers.

* Added handling of optional arguments in api functions.

* Optional header params.

* Fixed a bug in path param replacement.

* Relaxed deserializing of model records with @@deriving yojson { strict = false }. It allows receiving more fields in the JSon payload than declared in the OCaml record, fields not matching any record field are ignored.

* Reformatted api-impl.mustache.

* Generate shorter enum value names by allowing underscore character.

* Cleanup of optional params generation.

* Updated the OCaml samples with the latest version of the generator.

* Corrected a bug encountered when generating default value for optional enum fields.

* Added v3 version of the samples for the OCaml generator.
2019-08-07 11:25:32 +08:00
cgensoul
1c36fa9fe3 Fixed #3521. Response headers were not processed for enums collection. (#3526)
* Fixed #3521. Response headers were not processed for enums collection.

* Replace " by '' in text fields to allow these to be used in OCaml comments.

* Added support of ByteArray (i.e. base64 encoded data) body and free form object as request body. Added support of free form object in response body as well.

* Added result as a reserved word to prevent generating model files with this name (having a result.ml model file confuses dune into thinking some other model modules depend on Result when they don't).

* Updated samples to reflect the latest changes in the OCaml generator.
2019-08-02 19:04:53 +08:00
William Cheng
981b3a53ef update ocaml openapi3 petstore script 2019-07-29 12:05:15 +08:00
William Cheng
6e3176557c [OCaml] various enhancements (#3483)
* add ocaml template creator

* various enhancement to ocaml generator

* update instruction

* update doc

* remove readme

* add back readme
2019-07-29 10:07:32 +08:00