diff --git a/API.md b/API.md index 4168d2a..49cd8eb 100644 --- a/API.md +++ b/API.md @@ -6,17 +6,17 @@ The NoteHub API can only be used in combination with a __Publisher ID__ (PID) and __Publisher Secret Key__ (PSK), which can be issued [here](http://notehub.org/api/register). The PSK can be revoked at any moment in case of an API abuse. -A PID is a string is chosen by the publisher and cannot be longer than 16 characters (e.g.: __notepadPlugin__). A PSK will be generated by the NoteHub API and is a string of hex characters of length 32. (e.g.: ...) +A PID is a string chosen by the publisher and cannot be longer than 16 characters (e.g.: __notepadPlugin__). A PSK will be generated by the NoteHub API and can be a string of any length and content. -All API requests must be issued with one special parameter `version` denoting the expected version of the API as a string, e.g. `"1.0"` (see examples below). +All API requests must be issued with one special parameter `version` denoting the expected version of the API as a string, e.g. `1.0` (see examples below). ## Note Retrieval A simple `GET` request to the following URL: - http://notehub.org/api/get-note?v=1.0&title= + http://notehub.org/api/get-note?version=1.0&title= -will return a JSON object containing following self explaining fields: `noteID`, `note`, `longURL`, `shortURL`, `statistics`, `status`. +will return a JSON object containing following self explaining fields: `note`, `longURL`, `shortURL`, `statistics`, `status`. Example: @@ -34,17 +34,17 @@ Example: } } -Hence, the status of the request can be evaluated by reading of the property `status.success`. The field `status.comment`might contain an error message, a warning or some comments from the server. +Hence, the status of the request can be evaluated by reading of the property `status.success`. The field `status.comment`might contain an error message, a warning or any other comments from the server. -The note ID is a string, containing the date of publishing and a few first words of the note (usually the header), e.g.: `"2014/1/3/lorem-ipsum"`. +The note ID is a string, containing the date of publishing and a few first words of the note (usually the header), e.g.: `2014/1/3/lorem-ipsum`. This ID will be generated by NoteHub automatically. ## Note Creation A note must be created by a `POST` request to the following URL: - http://notehub.org/api/v1.0/post-note + http://notehub.org/api/post-note -Together with the following parameters: +with the following parameters: Parameter | Explanation | Type --- | --- | --- @@ -54,7 +54,7 @@ Parameter | Explanation | Type `password` | MD5 hash of a plain password for editing | *optional* `version` | Used API version | **required** -The Signature must be computed on the client side using the note text _and_ the PSK, wrt. the algorithm described below. The signature serves as a proof, that the request is authentic and the will be issued by the publisher corresponding to the provided PID. +The Signature must be computed on the client side using the note text _and_ the PSK, wrt. the algorithm described below. The signature serves as a proof, that the request is authentic and will be issued by the publisher corresponding to the provided PID. The response of the server will contain the fields `noteID`, `longURL`, `shortURL`, `status`. @@ -76,7 +76,7 @@ The status object serves the same purpose as in the case of note retrieval. To update a note, an `UPDATE` request must be issued to the following URL: - http://notehub.org/api/v1.0/update-note + http://notehub.org/api/update-note with the following parameters: @@ -121,8 +121,8 @@ The signature is computed as a very simple hash function. Consider the following Note: - the `hash` variable is typed as a signed 32-bit integer - - `^`denotes an XOR - - `charCodeAt()` returns the char code of the note letter at the given position; e.g., it will return values [97, 167, 1092] for three characters of the string `"a§ф"`. + - `^` denotes an XOR + - `charCodeAt()` returns the char code of the note letter at the given position; e.g., it will return values [97, 167, 1092] for three characters of the string `a§ф`. Your can test your implementation on the following tests: