package jsonschema2atd
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  
  
  Generate ATD types out of JSON Schema and OpenAPI document
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      0.0.3.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=8fd01d574c534f8f113f8c434e17f731
    
    
  sha512=5ff33bc638307d41e8e41c3de44470bfb66b7c4ca3636aa58869accf37f5b2c732928e7d0bfd5ec63492f8463863d901e3a0b979a2a105acc7392ec0aa51a856
    
    
  Description
Generate ATD types out of JSON Schema and OpenAPI document
Published: 29 Jun 2024
README
jsonschema2atd
Generate an ATD file from a JSON Schema / OpenAPI document.
Installation
The package is available on opam.
opam install jsonschema2atdIf you wish to install the development version you can do so with:
make installUsage
Generate an ATD file from a JSON Schema:
jsonschema2atd ../path-to-jsonschema.jsonGenerate an ATD file from an OpenAPI document:
jsonschema2atd --format openapi ../path-to-openapi.jsonYou can call jsonschema2atd and atdgen in your dune file to generate OCaml types and JSON serializers/deserializers from your JSON Schema or OpenAPI document:
; Add jsonschema2atd.runtime to have access to the oneOf serialization adapter (for variant unboxing).
(library
 ...
 (libraries ... jsonschema2atd.runtime))
; Generate dashboard_gen.atd from the dashboard_types_gen.json OpenAPI document with jsonschema2atd.
(rule
 (target dashboard_gen.atd)
 ; Store the generated .atd file in the code. 
 (mode promote)
 (deps ../grok/dashboard_types_gen.json)
 (action
  (with-stdout-to
   %{target}
   (run
    %{bin:jsonschema2atd} -f openapi
    %{deps}))))
; Generate dashboard_gen_t.mli, dashboard_gen_t.ml, dashboard_gen_j.mli, and dashboard_gen_j.ml from dashboard_gen.atd with atdgen.
(rule
 (targets
  dashboard_gen_t.mli
  dashboard_gen_t.ml
  dashboard_gen_j.mli
  dashboard_gen_j.ml)
 (deps dashboard_gen.atd)
 (action
  (progn
   (run %{bin:atdgen} -j -j-std -j-defaults %{deps})
   (run %{bin:atdgen} -t %{deps}))))ToDo
- Base types
 - Records
 - Nullable
 - String enums
 - Integer enums
 - Other primitive enums
 - Refs (OpenAPI format)
 - OneOf (Only serialization is supported)
 - not
 - anyOf
 - allOf
 
Dependencies (7)
- yojson
 - dune-build-info
 - 
  
    cmdliner
  
  
    
>= "1.1.0" - 
  
    atdgen-runtime
  
  
    
>= "2.0" - 
  
    atdgen
  
  
    
>= "2.7" - 
  
    ocaml
  
  
    
>= "4.14" - 
  
    dune
  
  
    
>= "3.0" 
Dev Dependencies (4)
- 
  
    ounit2
  
  
    
with-test - 
  
    odoc
  
  
    
with-doc - 
  
    ocamlformat
  
  
    
with-dev-setup & = "0.24.1" - 
  
    ocaml-lsp-server
  
  
    
with-dev-setup 
Used by
None
Conflicts
None
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page