EDIT: Read the updated plan here: http://www.sayakbanerjee.com/2013/09/16/new-paste-kde-org-api-specs/#comment-10606
Today, I released a stable version of Sticky Notes, the app behind paste.kde.org. This release is a complete rewrite of the entire app using the Laravel 4 framework. The main intention behind a rewrite was not only to cope up with the feature requests of the application (for Sticky Notes as a product, not necessarily related to KDE Pastebin itself) and an opportunity to see how far PHP has come as a “real-OOP” language.
Since my KDE work is mostly web development oriented, I often miss out the fun involved with “hardcore coding”. However, this experience with Laravel not only changes my view about PHP but has been a good learning opportunity for me. So if you are a PHP developer with a knack of doing unconventional things, I strongly recommend Laravel to you if you haven’t tried it already.
Now coming to the point, due to the massive rewrite involved, I needed to deprecate some bad programming practices that were there in the old pastebin API. I have come to understand that there are indeed a few more than a handful of apps that uses the paste.kde.org API. So if you are reading this, and you are the author of an app that uses the KDE Pastebin API, please refer to the new API specifications. If you have any questions, please create a ticket here or on bugs.kde.org (component paste.kde.org). You can also find me at #kde-sysadmin on freenode (nick: sayakb).
There are a few things to note:
- I will be loading the new API to paste.kde.org on 1st October 2013 12:00am CST and I’ll move the old API to pasteapi.kde.org. So if you are not able to publish the new API changes by 1st October, you can simply point your code to the fallback URL. However, pasteapi.kde.org will be temporary and will be nuked by the end of this year.
- I have tried to keep things very similar to how they were before from an API consumer point of view. So from the top of my head, other than removing the annoying paste_ prefixes for the request parameters and some new response error codes, not much changed.
- The URL for the requests have changed though – as Laravel uses a different approach towards URL routing. The create endpoint now supports POST only (I always wanted to remove GET as transmitting an optional password for the paste as GET is a no-no), while the list and show endpoints support GET requests.
- If you are looking for some example code, look at this api-client branch here: https://github.com/sayakb/sticky-notes/tree/api-client
- You can test out the new version of the API here: http://sandbox.paste.kde.org/
A mirror of the entire codebase is also available at projects.kde.org here: https://projects.kde.org/paste-kde-org