{"id":20528211,"url":"https://github.com/manticoresoftware/openapi","last_synced_at":"2025-03-06T01:51:51.504Z","repository":{"id":43098603,"uuid":"435741031","full_name":"manticoresoftware/openapi","owner":"manticoresoftware","description":"Manticore Search clients generator","archived":false,"fork":false,"pushed_at":"2025-02-07T13:17:25.000Z","size":5834,"stargazers_count":5,"open_issues_count":3,"forks_count":8,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-07T14:25:17.395Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Mustache","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/manticoresoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-07T04:22:18.000Z","updated_at":"2025-02-07T13:17:33.000Z","dependencies_parsed_at":"2023-02-13T20:00:42.711Z","dependency_job_id":"84e19e81-ea1b-4d67-a235-d831fa739c43","html_url":"https://github.com/manticoresoftware/openapi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manticoresoftware%2Fopenapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manticoresoftware%2Fopenapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manticoresoftware%2Fopenapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manticoresoftware%2Fopenapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manticoresoftware","download_url":"https://codeload.github.com/manticoresoftware/openapi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242133482,"owners_count":20077097,"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-15T23:23:58.518Z","updated_at":"2025-03-06T01:51:51.482Z","avatar_url":"https://github.com/manticoresoftware.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Manticore Search OpenAPI client generator\n\nThis project allows you to automatically generate Manticore Search clients for different languages.\n\nFor this purpose, the *OpenApi Generator* tool is used. More info can be found [here](https://github.com/OpenAPITools/openapi-generator).\n\nTo generate a client, the OpenApi generator needs a config file describing the structure of API. The file is `manticore.yml`.  \nTo edit and validate the config, you can use an online editor such as [Swagger](https://swagger.io/).\n\n\n## Generated clients\n\n* [Python](https://github.com/manticoresoftware/manticoresearch-python) - it also has a testing suite with incomplete coverage\n\n* [.Net](https://github.com/manticoresoftware/manticoresearch-net) - it also has a testing suite with incomplete coverage\n\n* [Javascript](https://github.com/manticoresoftware/manticoresearch-javascript) - it also has a testing suite with incomplete coverage\n\n* [Java](https://github.com/manticoresoftware/manticoresearch-java) - it also has a testing suite with incomplete coverage\n\n* [Elixir](https://github.com/manticoresoftware/manticoresearch-net) - it also has a testing suite with incomplete coverage\n\n* [Typescript](https://github.com/manticoresoftware/manticoresearch-typescript) - it also has a testing suite with incomplete coverage\n\n\n## Contributing\n\nWhen proposing a Pull Request (PR) for a client, please ensure that your PR modifies only the corresponding client templates, not the client code itself, which is stored in the 'out' folder. The client code is generated automatically via GitHub CI, so it is not necessary to add it explicitly.\n \n\n## Building\n\nThe simplest way to make a build for a specific language, e.g., for Java, is to use our build script:\n\n```\n./build.sh java\n```\n\nYou can also build versions for all supported languages at once:\n\n```\n./build.sh all\n```\n\nBy default, the latest available version of the OpenApi generator will be used. If you want to apply a specific version, add a corresponding argument to the command call:\n\n```\nbuild.sh Java v5.0.0   \n```\n\nwhere `v5.0.0` is a tag of the generator's Docker image you need.\n\n\nThe current versions used are 'v6.6.0' for Java and 'v6.1.0.' for the rest of the clients.\n\n\nNote that you can also use Docker and run the OpenApi generator Docker image directly:\n\n```\ndocker pull  openapitools/openapi-generator-cli \n\ndocker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -i /local/manticore.yaml -g java -o /local/out/java\n```\n\n\n### Custom overrides\n\nUsing the Docker way for generating clients, you should also apply your custom overrides when it's necessary (for example, to change package names).\n\nBy default, the generators use standard package names (like *openapi_client*). These names need to be changed at build time (since this is not a responsibility of the OpenAPI spec to define how a package for a language must be named).\n\nPackage or Project names have their specific variables for each language (there are some general variables for the `api/model` package, but some generators don't use them!). There are also other variables that may require a custom value to be set for them. To see these, run\n\n```\ndocker run --rm -v ${PWD}:/local  -u \"$(id -u):$(id -g)\" -e JAVA_OPTS=\"-Dlog.level=warn\" openapitools/openapi-generator-cli config-help -g XXX\n```\n\nwhere `XXX` is the name of the generator (language).\n\nTo add these specific variables, use ` --additional-properties NAME=VALUE` in the `docker run` command (see `build.sh` for examples).\n\nPlease note that for Java, the library used is `okhttp-gson`, and some of its templates (like the `readme`) must be edited in the `templates/Java/libraries/okhttp-gson/` folder.\n\n\n## Project folders\n\n- `out` - contains the code of generated clients. Each client is located in a folder named `manticore-X` where X is a client's language.\n\n- `patches` - contains patch files for various clients\n\n- `test` - contains hand-made or modified generated tests (it's desirable to copy them to the corresponding subfolder of `manticore-X`)\n\n- `templates` -  contains mustache templates taken from https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator/src/main/resources; These should be updated from time to time\n\n- `docs` - contains the documentation parts for generated clients which cannot be correctly generated in auto mode.\n\n\n## Specific client issues\n\n### JavaScript\n\n\n* `delete()` is renamed to `callDelete` because `delete()` is a reserved method - the only appropriate fix is to rename doc operations to something else (like `deleteDocuments()`)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanticoresoftware%2Fopenapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanticoresoftware%2Fopenapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanticoresoftware%2Fopenapi/lists"}