{"id":21502320,"url":"https://github.com/sitmcella/openapi-3-object-converter","last_synced_at":"2025-03-17T13:40:42.911Z","repository":{"id":55943220,"uuid":"193395986","full_name":"sitMCella/openapi-3-object-converter","owner":"sitMCella","description":"Java class conversion to OpenAPI 3 YAML Schema Object","archived":false,"fork":false,"pushed_at":"2020-12-05T09:48:46.000Z","size":107,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-23T23:32:10.682Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sitMCella.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-23T21:12:21.000Z","updated_at":"2023-09-05T13:28:43.000Z","dependencies_parsed_at":"2022-08-15T10:00:46.678Z","dependency_job_id":null,"html_url":"https://github.com/sitMCella/openapi-3-object-converter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitMCella%2Fopenapi-3-object-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitMCella%2Fopenapi-3-object-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitMCella%2Fopenapi-3-object-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sitMCella%2Fopenapi-3-object-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sitMCella","download_url":"https://codeload.github.com/sitMCella/openapi-3-object-converter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244043452,"owners_count":20388586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T18:14:23.268Z","updated_at":"2025-03-17T13:40:42.892Z","avatar_url":"https://github.com/sitMCella.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java class conversion to OpenAPI 3 YAML Schema Object\n\nThis project consists of a Java application used for converting a Java class to a free-form object in OpenAPI 3 YAML \nSchema Object definition.\n\nThis implementation is an extension of the free-form query parameter definition in OpenAPI 3 specification.\n\nThe OpenAPI 3 YAML Schema Object is inserted into an OpenAPI 3 document, compliant with the YAML version 1.2 format.\n\nThe official OpenAPI 3 documentation is: [OpenAPI 3.0.0 documentation](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md)\n\n## Development\n\n### Setup\n\nInstall OpenJDK 11.\n\n### Build project\n\n```\ngradlew clean build\n```\n\n### Run project\n\n```\njava -jar build/libs/object-converter-0.0.2-SNAPSHOT.jar \u003cJava-class-canonical-name\u003e\n```\n\n__Example:__\n\n```\njava -jar build/libs/object-converter-0.0.2-SNAPSHOT.jar de.mcella.openapi.v3.objectconverter.Example\n```\n\nThe generated OpenAPI 3 document is the file \"build/libs/openapi.yaml\".\n\n__Example with external class:__\n\n```\njavac example-external\\src\\* -d example-external\\classes\n```\n\nWindows:\n\n```\njava -cp build\\libs\\*;example-external\\classes de.mcella.openapi.v3.objectconverter.ObjectConverterMain  de.mcella.openapi.v3.objectconverter.example.ExampleFromExternal\n```\nLinux and MacOS:\n\n```\njava -cp \"build/libs/*:example-external/classes:.\" de.mcella.openapi.v3.objectconverter.ObjectConverterMain de.mcella.openapi.v3.objectconverter.example.ExampleFromExternal\n```\n\nThe generated OpenAPI 3 document is a file named \"build/libs/openapi.yaml\".\n\n### OpenAPI 3 document validation\n\nRun the following gradle command to validate the generated OpenAPI 3 document:\n\n```\ngradlew openApiValidate\n```\n\n### Source code style\n\nThis project follows the Google Java Style, and uses the [google-java-format](https://github.com/google/google-java-format) formatter.\n\n## Documentation\n\nThis application is useful to convert a complex Java class to an OpenAPI 3 Schema free-form object definition.\n\nThe OpenAPI 3 YAML Schema Object is inserted into an OpenAPI 3 document.\nThe generated OpenAPI 3 document is a single and complete OpenAPI 3 document with a simple template.\nThe converted Java class is inserted as a Schema Object into a sample POST request with body content \"application/json\".\n\nAssumptions:\n- The Schema Object does not contain Reference Objects\n- The Schema Object contains a subset of the available OpenAPI specification properties\n- The application does not support composition and inheritance using the \"allOf\" and \"discriminator\" properties\n\n### Data Types\n\nThe supported OpenAPI 3 data types are the following:\n\n| Common name | type | format | Comments |\n| :------: | :------: | :------: | :------: |\n| integer | integer | int32 | signed 32 bits |\n| long | integer | int64 | signed 64 bits |\n| float | number | float | |\n| double | number | double | |\n| string | string | | |\n| byte | string | byte | base64 encoded characters |\n| boolean | boolean | | |\n| date | string | date | As defined by full-date - [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) |\n| dateTime | string | date-time | As defined by date-time - [RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) |\n\nThe application supports both Java primitive types and Java wrapper classes.\n\n### Features\n\nThe application supports the conversion of:\n- Java primitive and Java wrapper classes\n- Custom classes\n- Lists (with a defined Generic Class)\n- Dictionaries\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitmcella%2Fopenapi-3-object-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsitmcella%2Fopenapi-3-object-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsitmcella%2Fopenapi-3-object-converter/lists"}