-
Notifications
You must be signed in to change notification settings - Fork 4
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
Project goals #6
Comments
also touched in #1 (comment) |
Can you clarify?
Reliability and secure operation should come first. The API mechanisms will leverage existing security features (such as access control for private links, IP banning, etc.). An authentication method needs to be defined, it should not try to protect the client against passive sniffing (that's what TLS is for), but can reasonably protect against token reuse/session replays (eg. by expiring the token). Functionality, usability: Reliability, changeability: Once an API endpoint has been defined and implemented in Shaarli, it should not be changed in the future in a way that it causes clients to break. Non-backwards compatible changes may be proposed for a future version of the API. Portability: any client written in any language should be able to work with the API, as long as it has the capability to use above mentioned HTTP methods, and parse resulting JSON data.
Submit a Pull Request to this repository while minding the above points, discuss it/amend it with other contributors until it reaches a reasonable consensus. Does it answer most of your questions? Only speaking for myself, @ArthurHoaro @virtualtam get the final word. |
I mentioned before, that I would recommend specifying the API through mandatory tests that have to be passed. I'm not interested in documentation. But I'm interested in mandatory, reliable, enforcable, machine executable criteria. Often called acceptance tests. Is this the goal of this endeavour? If not, I fear this here is a waste of time. |
I recommend a defined time-frame until things change. E.g. require a deprecation period of 12 months. |
The API should be defined in the documentation first (other client developers will be interested in the doc), and yes, there should be a test suite (eg. a reference client, and verify that server responses match an expected behaviour, defined in the doc :) ). Preferably not a 1000-line bash script, there are tools more suited for this task (python requests and simplejson come to mind).
Once defined the API should not be changed (except minor, non-breaking changes). Building another, separate version of the API is still possible, and yes, there should be a reasonable period before phasing out a deprecated version of the API. |
ok, expect me back when there are tests emerging. |
any news about tests meanwhile? |
may I raise this question to be clarified explicitly? I touched it in shaarli/Shaarli#586 (comment)
The text was updated successfully, but these errors were encountered: