-
-
Notifications
You must be signed in to change notification settings - Fork 803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] We need API version for endpoints #2066
Comments
There's a lot of maintenance burden maintaining old versions of the API, so we'll need some way to avoid that as well. I think just establishing a changelog + announcement process for any API changes should be good enough for now, with current URL redirects to Long-term:
Does this mean we'll need to add endoflife.date as a product on the site 😏 ? |
🤔 about recursivity ♾️ |
Does it mean you'll have to maintain old APIs for retro-compat changes ?... |
Compared the the old v0 API : - v1 API is now generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/). - JSON files has been moved to the v1 subdirectory (#2066). This makes it easier to implement non-backward-compatible changes in API. - The all.json, that returned a simple array of product names in v0, now returns a JSON document in v1. The array of products can be found under the 'products' key. This enables us to add endoflife.date-level data (such as the number of products). - The "products" array in all.json now also contains JSON document instead of simple strings. This will make it easier in the future to expose new data (such as tags for products). - Product level information are now exposed in the API (#2062) at the "product" endpoint. Instead of a JSON array in v0, v1 returns a JSON document. The release cycles array can be found under the 'releases' key. - Cycles data now always contains all the release cycles key, even if they are null. - Individual cycles JSON files has been removed (we thought it was not used/useful enough to be kept).
Compared the the old v0 API : - v1 API is now generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/). - JSON files has been moved to the v1 subdirectory (#2066). This makes it easier to implement non-backward-compatible changes in API. - The all.json, that returned a simple array of product names in v0, now returns a JSON document in v1. The array of products can be found under the 'products' key. This enables us to add endoflife.date-level data (such as the number of products). - The "products" array in all.json now also contains JSON document instead of simple strings. This will make it easier in the future to expose new data (such as tags for products). - Product level information are now exposed in the API (#2062) at the "product" endpoint. Instead of a JSON array in v0, v1 returns a JSON document. The release cycles array can be found under the 'releases' key. - Cycles data now always contains all the release cycles key, even if they are null. - Individual cycles JSON files has been removed (we thought it was not used/useful enough to be kept).
Compared the the old v0 API : - v1 API is now generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/). - JSON files has been moved to the v1 subdirectory (#2066). This makes it easier to implement non-backward-compatible changes in API. - The all.json, that returned a simple array of product names in v0, now returns a JSON document in v1. The array of products can be found under the 'products' key. This enables us to add endoflife.date-level data (such as the number of products). - The "products" array in all.json now also contains JSON document instead of simple strings. This will make it easier in the future to expose new data (such as tags for products). - Product level information are now exposed in the API (#2062) at the "product" endpoint. Instead of a JSON array in v0, v1 returns a JSON document. The release cycles array can be found under the 'releases' key. - Cycles data now always contains all the release cycles key, even if they are null. - Individual cycles JSON files has been removed (we thought it was not used/useful enough to be kept).
Compared the the old v0 API : - v1 API is now generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/). - JSON files has been moved to the v1 subdirectory (#2066). This makes it easier to implement non-backward-compatible changes in API. - The all.json, that returned a simple array of product names in v0, now returns a JSON document in v1. The array of products can be found under the 'products' key. This enables us to add endoflife.date-level data (such as the number of products). - The "products" array in all.json now also contains JSON document instead of simple strings. This will make it easier in the future to expose new data (such as tags for products). - Product level information are now exposed in the API (#2062) at the "product" endpoint. Instead of a JSON array in v0, v1 returns a JSON document. The release cycles array can be found under the 'releases' key. - Cycles data now always contains all the release cycles key, even if they are null. - Individual cycles JSON files has been removed (we thought it was not used/useful enough to be kept).
Compared the the old v0 API : - v1 API is now generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/). - JSON files has been moved to the v1 subdirectory (#2066). This makes it easier to implement non-backward-compatible changes in API. - The all.json, that returned a simple array of product names in v0, now returns a JSON document in v1. The array of products can be found under the 'products' key. This enables us to add endoflife.date-level data (such as the number of products). - The "products" array in all.json now also contains JSON document instead of simple strings. This will make it easier in the future to expose new data (such as tags for products). - Product level information are now exposed in the API (#2062) at the "product" endpoint. Instead of a JSON array in v0, v1 returns a JSON document. The release cycles array can be found under the 'releases' key. - Cycles data now always contains all the release cycles key, even if they are null. - Individual cycles JSON files has been removed (we thought it was not used/useful enough to be kept).
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/tags/<tag> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. Compared the the old API v0, API v1: - is generated using a Jekyll Generator (see https://jekyllrb.com/docs/plugins/generators/), - is versioned using the api/v1 prefix (#2066). This will make it easier to implement non-backward-compatible changes in API, - feels more "Restful". The API v0 is still generated to give time to users to migrate to API v1. Changes in the "All products" endpoint: - Path has been changed from api/all.json to api/v1/products/ - Response has been changed from a simple array to a JSON document. This made it possible to add endoflife-level data, such as the number of products. - Array elements have been changed from a simple string to a full JSON document. This made it possible to expose new data, such as product category and tags (#2062). Changes in the "Product" endpoint: - Path has been changed from api/<product>.json to api/v1/products/<product>/. - Response has been changed from a simple array to a JSON document. This made it possible to expose product-level data, such as product category and tags (#2062). - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). Changes in the "Cycle" endpoint: - Path has been changed from api/<product>/<cycle>.json to api/v1/products/<product>/cycles/<cycle>/. - Cycles data now always contain all the release cycles properties, even if they are null (example: discontinued, latest, latestReleaseDate, support...). - A special /api/v1/products/<product>/cycles/latest/ cycle, containing the same data as the latest cycle, has been added (#2078). New endpoints : - /api/v1/categories/ - list categories used on endoflife.date - /api/v1/categories/<category> - list products having the given category - /api/v1/tags/ - list tags used on endoflife.date - /api/v1/tags/<tag> - list products having the given tag Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
This is a major rework of the API with a lot of breaking changes. See CHANGELOG_API.md for more information. Note that we thought of disabling API generation in development (using JEKYLL_ENV like the Jekyll Feed plugin - see https://github.com/jekyll/jekyll-feed/blob/master/lib/jekyll-feed/generator.rb#L145), but it was finally reverted. It does not work well with Netlify preview, and generate production URL (i.e. https://endoflife.date URLs) in development which makes it difficult to use.
Even we are now in alpha phase for our API , I still think we need a version in endpoints.
This will let us break api whenever we need to change structure without breaking userspace.
For example
right now we are using
https://endoflife.date/api/{product}.json
endpointmy suggestion is adding version part in this endpoint such as
https://endoflife.date/api/
v1
/{product}.json
To keep it backward compatibility we can use redirection for a while
https://endoflife.date/api/{product}.json -> https://endoflife.date/api/v1/{product}.json
And whenever we need a break in api we just put new to v2 so v1 users still can continue to get values
with a warning that v1 is deprecated and will be removed
The text was updated successfully, but these errors were encountered: