Description
Documentation: http://docs.technicsolder.apiary.io
Implementation: indemnity83/technicsolder
Issues: indemnity83/technicsolder#issues
Proposals: indemnity83/technicsolder#pull-requests
Abstract
The current API has worked really well for its purpose, which is to have users create client modpacks in a web browser, and let the launcher know what needs to be pulled together to deploy that configuration.
However, it is NOT very good at allowing third party tools to facilitate the process for a user. The endpoints are all read only, and their return datasets are inconsistant from endpoint to endpoint.
I propose developing a compete JSON API v1.0 implementation of the TechnicSolder platform. In order to modernize the API, I've also re-built the core of the application using Laravel 5.3 and that implementation too is up for comment. I have done a lot of conceptual, and early implementation work toward that goal and would like to get feedback (particuarly from @GenPage) before going on any further.
Backward Compatability
Existing api endpoints use singular nouns (mod, modpack) and the proposed v0.8 endpoints MUST use plural nouns (mods, modpacks, builds, etc.), which will ensure FULL BACKWARD COMPATABILITY. This is critical to the success of the update, as the Technic system is widly distributed and there are many components that rely on the v0.7 API.
The v0.7 API would be deprecated, but would likely be maintained until at least the TechnicLauncher and TechnicPack.net consumers were updated, and significantly adopted.
API Documentation
The living API Documentation can be found at http://docs.technicsolder.apiary.io, the raw version of the document is pulled from the apiary.apib file in the root of the development branch.
Contributing
Please make specific comments/suggestions as issues in the forked repository. Similarly if you'd like to suggest a change to the documentation please submit it as a pull request against the forked repository.
Notes on Proof of Concept Stability
The Apiary API documentation, as well as the Application impementation are ovbiously subject to significant change as this proposal is discussed, and if/until they are pulled into the master of the technicpack/technicsolder repository they should be considered unstable, and subject to breaking changes (for example, changes to the database structure WILL be made to the existing migrations files).
Breaking changes will be noted where known in commit messages, but no garentee is made and the application in its current form should not be considered fit for production use.
Activity