Title: General overview of current problems with the specs · Issue #10 · contentstack/contentstack-openapi · GitHub
Open Graph Title: General overview of current problems with the specs · Issue #10 · contentstack/contentstack-openapi
X Title: General overview of current problems with the specs · Issue #10 · contentstack/contentstack-openapi
Description: Hi all, The current state of the Open API specs provided - which are linked in the README for some reason by the way, but why aren't they files maintained in this repo? - is valid and spec compliant, but it lacks the polish and clarity y...
Open Graph Description: Hi all, The current state of the Open API specs provided - which are linked in the README for some reason by the way, but why aren't they files maintained in this repo? - is valid and spec complian...
X Description: Hi all, The current state of the Open API specs provided - which are linked in the README for some reason by the way, but why aren't they files maintained in this repo? - is valid and spec comp...
Opengraph URL: https://github.com/contentstack/contentstack-openapi/issues/10
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"General overview of current problems with the specs","articleBody":"Hi all,\n\nThe current state of the Open API specs provided - which are linked in the `README` for some reason by the way, but why aren't they files maintained in this repo? - is valid and spec compliant, but it lacks the polish and clarity you'd expect from a production-grade, SDK-generating spec.\n\nThis last part is very significant: Contentstack maintains a set of SDKs in several languages which are manually developed rather than automatically generated, which adds a lot of friction when synchronising all of the SDKs in the target languages and when the underlying API changes (e.g. new functionality is added to existing endpoints, new endpoints are added, etc.). If the Open API specs were cleaner and more idiomatic, the company could just maintain the spec itself and generate all of the client SDKs (for current and possibly more supported languages) with a single automatic code generation tool.\n\nOne example is the `operationId` parameter. While they are unique across endpoints, they are all in lowercase (the format recommends camelCase) and in some cases they are unwieldy. Operation IDs like `getallentries|getallentryvariants|equalsoperator|...` violate the principle that `operationId` should be a unique and concise identifier for codegen and SDK generation.\n\nAnother example: many parameter `description`s are inaccurate or copy-pasted (e.g. `\"Enter the actual query that will be executed...\"` appears for fields that are not JSON queries).\n\nOne more: parameter names like `include[]` and `only[BASE][]` are technically allowed, but not idiomatic. Better practice is to document them with `style: form` and `explode: true`, and clarify in the description. Parameters like `only[BASE][]` would be better modeled using structured query object modeling or clearly defined array fields.\n\nA general problem throughout is the overloading of `description` and `summary` fields: `summary` is crammed with multiple use cases instead of a brief 1-line summary, and `description` includes tons of raw HTML - valid per spec, but not best practice. These fields are intended for humans (e.g. devs using Swagger UI), so readability is key. \n\nInterestingly, some parts of the specs suffer from the inverse of the above: a 200 response with just `description: \"\"` and no schema or example is valid, but under-documented.\n\nUltimately, as it stands, the Open API specs are serviceable but unworkable for any of the more exciting use cases that the format can provide. Anyone interested in leveraging the specs offered is forced to sanitise or post-process them - e.g. trimming HTML, rewriting parameter names, and simplifying operation summaries/IDs.","author":{"url":"https://github.com/glhrmv","@type":"Person","name":"glhrmv"},"datePublished":"2025-06-22T17:58:01.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/10/contentstack-openapi/issues/10"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:69319560-e047-fb1b-b263-dd997f4bb1f4 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B078:9F3B:1DAD76:24D7A5:697EE698 |
| html-safe-nonce | d1d4c6c7d806906722b48efd47ad40e7b05544a855770892dc771bbd298882e6 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMDc4OjlGM0I6MURBRDc2OjI0RDdBNTo2OTdFRTY5OCIsInZpc2l0b3JfaWQiOiIzODM1NzE2OTUwMjk4NjUwMjY0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 99635081d79c8be1aac443b06beb9e659a823828a90c3076f5e9f7c1d50351ed |
| hovercard-subject-tag | issue:3166145497 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/contentstack/contentstack-openapi/10/issue_layout |
| twitter:image | https://opengraph.githubassets.com/b99b062b14fc739ec15ec9427153386eba4010003669394491d1ddfc1f6cae5f/contentstack/contentstack-openapi/issues/10 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/b99b062b14fc739ec15ec9427153386eba4010003669394491d1ddfc1f6cae5f/contentstack/contentstack-openapi/issues/10 |
| og:image:alt | Hi all, The current state of the Open API specs provided - which are linked in the README for some reason by the way, but why aren't they files maintained in this repo? - is valid and spec complian... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | glhrmv |
| hostname | github.com |
| expected-hostname | github.com |
| None | 60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6 |
| turbo-cache-control | no-preview |
| go-import | github.com/contentstack/contentstack-openapi git https://github.com/contentstack/contentstack-openapi.git |
| octolytics-dimension-user_id | 24450751 |
| octolytics-dimension-user_login | contentstack |
| octolytics-dimension-repository_id | 331879062 |
| octolytics-dimension-repository_nwo | contentstack/contentstack-openapi |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 331879062 |
| octolytics-dimension-repository_network_root_nwo | contentstack/contentstack-openapi |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7c85641c598ad130c74f7bcc27f58575cac69551 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width