diff --git a/doc/REST-CalDAV-CardDAV/Addressbook.md b/doc/REST-CalDAV-CardDAV/Addressbook.md index d5b865216d..f2062eec96 100644 --- a/doc/REST-CalDAV-CardDAV/Addressbook.md +++ b/doc/REST-CalDAV-CardDAV/Addressbook.md @@ -6,15 +6,14 @@ Authentication is via Basic Auth with username and a password, or a token valid - Addressbook application Following RFCs / drafts used/planned for JSON encoding of resources -* [draft-ietf-jmap-jscontact: JSContact: A JSON Representation of Contact Data](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-jscontact) -([* see at end of document](#implemented-changes-from-jscontact-draft-08)) -* [draft-ietf-jmap-jscontact-vcard: JSContact: Converting from and to vCard](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-jscontact-vcard/) +* [rfc9553: JSContact: A JSON Representation of Contact Data](https://datatracker.ietf.org/doc/html/rfc9553) +* [rfc9555: JSContact: Converting from and to vCard](https://datatracker.ietf.org/doc/html/rfc9555) * [rfc8984: JSCalendar: A JSON Representation of Calendar Data](https://datatracker.ietf.org/doc/html/rfc8984) * [links sub-collection to add attachments and links to other application-entries](Links-and-attachments.md) ### Supported request methods and examples -* **GET** to collections with an ```Accept: application/json``` header return all resources (similar to WebDAV PROPFIND) +#### **GET** to collections with an `Accept: application/json` header return all resources (similar to WebDAV PROPFIND)
Example: Getting all entries of a given users addessbook @@ -154,7 +153,7 @@ curl 'https://example.org/egroupware/groupdav.php/addressbook/?sync-token=https:
Example: Requesting only changes since last sync -#### ```sync-token``` from last sync need to be specified (note the null for a deleted resource!) +#### `sync-token` from last sync need to be specified (note the null for a deleted resource!) ``` curl 'https://example.org/egroupware/groupdav.php/addressbook/?sync-token=https://example.org/egroupware/groupdav.php/addressbook/1400867824' -H "Accept: application/pretty+json" --user { @@ -178,7 +177,7 @@ curl 'https://example.org/egroupware/groupdav.php/addressbook/?sync-token=https: ```
-* **GET** requests with an ```Accept: application/json``` header can be used to retrieve single resources / JsContact or JsCalendar schema +#### **GET** requests with an `Accept: application/json` header can be used to retrieve single resources / JsContact or JsCalendar schema
Example: GET request for a single resource showcasing available fieldes @@ -358,7 +357,7 @@ curl 'https://example.org/egroupware/groupdav.php/addressbook/6502' -H "Accept: ```
-* **POST** requests to collection with a ```Content-Type: application/json``` header add new entries in addressbook or calendar collections +#### **POST** requests to collection with a `Content-Type: application/json` header add new entries in addressbook or calendar collections (Location header in response gives URL of new resource)
Example: POST request to create a new resource @@ -412,7 +411,7 @@ Location: https://example.org/egroupware/groupdav.php//addressbook/123 ```
-* **PUT** requests with a ```Content-Type: application/json``` header allow modifying single resources (requires to specify all attributes!) +#### **PUT** requests with a `Content-Type: application/json` header allow modifying single resources (requires to specify all attributes!)
Example: PUT request to update a resource @@ -468,7 +467,7 @@ Location: https://example.org/egroupware/groupdav.php//addressbook/123
-* **PATCH** request with a ```Content-Type: application/json``` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject) +#### **PATCH** request with a `Content-Type: application/json` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject)
Example: PATCH request to modify a contact with partial data @@ -498,14 +497,14 @@ HTTP/1.1 204 No content ```
-* **DELETE** requests delete single resources +#### **DELETE** requests delete single resources -* one can use ```Accept: application/pretty+json``` to receive pretty-printed JSON eg. for debugging and exploring the API +* one can use `Accept: application/pretty+json` to receive pretty-printed JSON eg. for debugging and exploring the API #### Implemented [changes from JsContact draft 08](https://github.com/rsto/draft-stepanek-jscontact/compare/draft-ietf-jmap-jscontact-08): * localizedString type / object is removed in favor or regular String type and a [localizations object like in JsCalendar](https://datatracker.ietf.org/doc/html/rfc8984#section-4.6.1) * [Vendor-specific Property Extensions and Values](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-jscontact-07#section-1.3) -use ```:``` like in JsCalendar -* top-level objects need a ```@type``` attribute with one of the following values: -```NameComponent```, ```Organization```, ```Title```, ```Phone```, ```Resource```, ```File```, ```ContactLanguage```, -```Address```, ```StreetComponent```, ```Anniversary```, ```PersonalInformation``` \ No newline at end of file +use `:` like in JsCalendar +* top-level objects need a `@type` attribute with one of the following values: +`NameComponent`, `Organization`, `Title`, `Phone`, `Resource`, `File`, `ContactLanguage`, +`Address`, `StreetComponent`, `Anniversary`, `PersonalInformation` \ No newline at end of file diff --git a/doc/REST-CalDAV-CardDAV/Calendar.md b/doc/REST-CalDAV-CardDAV/Calendar.md index b9e57697bc..8801381c32 100644 --- a/doc/REST-CalDAV-CardDAV/Calendar.md +++ b/doc/REST-CalDAV-CardDAV/Calendar.md @@ -11,7 +11,7 @@ Following RFCs / drafts used/planned for JSON encoding of resources ### Supported request methods and examples -* **GET** to collections with an ```Accept: application/json``` header return all resources (similar to WebDAV PROPFIND) +#### **GET** to collections with an `Accept: application/json` header return all resources (similar to WebDAV PROPFIND)
Example: Getting all entries of a given users calendar @@ -211,7 +211,7 @@ following GET parameters are supported to customize the returned properties: Examples: see addressbook -* **GET** requests with an ```Accept: application/json``` header can be used to retrieve single resources / JsContact or JsCalendar schema +#### **GET** requests with an `Accept: application/json` header can be used to retrieve single resources / JsContact or JsCalendar schema
Example: GET request for a single resource @@ -248,7 +248,7 @@ curl 'https://example.org/egroupware/groupdav.php/calendar/6502' -H "Accept: app ```
-* **POST** requests to collection with a ```Content-Type: application/json``` header add new entries in addressbook or calendar collections +#### **POST** requests to collection with a `Content-Type: application/json` header add new entries in addressbook or calendar collections (Location header in response gives URL of new resource)
Example: POST request to create a new resource and use "Prefer: return=representation" to get it fully expanded back @@ -300,7 +300,7 @@ X-WebDAV-Status: 201 Created ```
-* **PUT** requests with a ```Content-Type: application/json``` header allow modifying single resources (requires to specify all attributes!) +#### **PUT** requests with a `Content-Type: application/json` header allow modifying single resources (requires to specify all attributes!)
Example: PUT request with UID to update an existing resource or create it, if not exists @@ -329,7 +329,7 @@ Location: https://example.org/egroupware/groupdav.php//calendar/1234
-* **PATCH** request with a ```Content-Type: application/json``` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject) +#### **PATCH** request with a `Content-Type: application/json` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject)
Example: PATCH request to modify an event with partial data @@ -345,7 +345,7 @@ HTTP/1.1 204 No content ```
-* **DELETE** requests delete single resources +#### **DELETE** requests delete single resources
Example: Delete an existing event @@ -358,4 +358,4 @@ HTTP/1.1 204 No Content ```
-* one can use ```Accept: application/pretty+json``` to receive pretty-printed JSON e.g. for debugging and exploring the API \ No newline at end of file +* one can use `Accept: application/pretty+json` to receive pretty-printed JSON e.g. for debugging and exploring the API \ No newline at end of file diff --git a/doc/REST-CalDAV-CardDAV/Infolog.md b/doc/REST-CalDAV-CardDAV/Infolog.md index 6a61e35b8c..bc0599235e 100644 --- a/doc/REST-CalDAV-CardDAV/Infolog.md +++ b/doc/REST-CalDAV-CardDAV/Infolog.md @@ -41,7 +41,7 @@ Following RFCs / drafts used/planned for JSON encoding of InfoLog entries ### Supported request methods and examples -* **GET** to collections with an ```Accept: application/json``` header return all resources (similar to WebDAV PROPFIND) +#### **GET** to collections with an `Accept: application/json` header return all resources (similar to WebDAV PROPFIND)
Example: Getting all entries of a given users infolog collection @@ -123,7 +123,7 @@ following GET parameters are supported to customize the returned properties: Examples: see addressbook -* **GET** requests with an ```Accept: application/json``` header can be used to retrieve single resources / JsContact or JsCalendar schema +#### **GET** requests with an `Accept: application/json` header can be used to retrieve single resources / JsContact or JsCalendar schema
Example: GET request for a single resource @@ -201,7 +201,7 @@ curl 'https://example.org/egroupware/groupdav.php/infolog/956' -H "Accept: appli ```
-* **POST** requests to collection with a ```Content-Type: application/json``` header add new entries in infolog collections +#### **POST** requests to collection with a `Content-Type: application/json` header add new entries in infolog collections (Location header in response gives URL of new resource)
Example: POST request to create a new resource and use "Prefer: return=representation" to get it fully expanded back @@ -268,7 +268,7 @@ X-WebDAV-Status: 201 Created ```
-* **PUT** requests with a ```Content-Type: application/json``` header allow modifying single resources (requires to specify all attributes!) +#### **PUT** requests with a `Content-Type: application/json` header allow modifying single resources (requires to specify all attributes!)
Example: PUT request with UID to update an existing resource or create it, if not exists @@ -297,7 +297,7 @@ Location: https://example.org/egroupware/groupdav.php//infolog/1234
-* **PATCH** request with a ```Content-Type: application/json``` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject) +#### **PATCH** request with a `Content-Type: application/json` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject)
Example: PATCH request to modify an event with partial data @@ -313,7 +313,7 @@ HTTP/1.1 204 No content ```
-* **DELETE** requests delete single resources +#### **DELETE** requests delete single resources
Example: Delete an existing event @@ -326,4 +326,4 @@ HTTP/1.1 204 No Content ```
-* one can use ```Accept: application/pretty+json``` to receive pretty-printed JSON e.g. for debugging and exploring the API \ No newline at end of file +* one can use `Accept: application/pretty+json` to receive pretty-printed JSON e.g. for debugging and exploring the API \ No newline at end of file diff --git a/doc/REST-CalDAV-CardDAV/Links-and-attachments.md b/doc/REST-CalDAV-CardDAV/Links-and-attachments.md index a7ba5bef81..bda40247b7 100644 --- a/doc/REST-CalDAV-CardDAV/Links-and-attachments.md +++ b/doc/REST-CalDAV-CardDAV/Links-and-attachments.md @@ -10,19 +10,19 @@ Authentication is via Basic Auth with username and a password, or a token valid ### Following schema is used for JSON encoding of links and attachments -* @type: `Link` -* href: string URI to linked entry or attachments -* title: string title of link -* contentType: string `application/json` for links, content-type of attachments -* size: size of attachments -* egroupware.org-remark: string -* egroupware.org-app: string application name of the linked entry -* egroupware.org-id: string application ID of the linked entry -* rel: string `egroupware.org-primary` to mark a primary link for InfoLog entries +* `@type`: `Link` +* `href`: string URI to linked entry or attachments +* `title`: string title of link +* `contentType`: string `application/json` for links, content-type of attachments +* `size`: size of attachments +* `egroupware.org-remark`: string +* `egroupware.org-app`: string application name of the linked entry +* `egroupware.org-id`: string application ID of the linked entry +* `rel`: string `egroupware.org-primary` to mark a primary link for InfoLog entries ### Supported request methods and examples -* **GET** to application entry collections to return all links and attachments +#### **GET** to application entry collections to return all links and attachments
Example: Getting all links and attachments of a given application entry @@ -62,7 +62,7 @@ Content-Type: application/json ```
-* **POST** request to upload an attachment or link with another application entry +#### **POST** request to upload an attachment or link with another application entry
Example: Adding a PDF as attachment to an application entry @@ -104,7 +104,7 @@ Location: https://example.org/egroupware/groupdav.php//infolog//li > `` is the numerical ID of the entry of application ``, NOT the UUID some applications have! > `<2nd-app-id>` is also the numerical ID of `<2nd-app>`, not the UUID -* **DELETE** request to remove a link or attachment +#### **DELETE** request to remove a link or attachment
Example: deleting an attachment or link @@ -116,4 +116,4 @@ HTTP/1.1 201 No Content ```
-> one can use ```Accept: application/pretty+json``` to receive pretty-printed JSON eg. for debugging and exploring the API \ No newline at end of file +> one can use `Accept: application/pretty+json` to receive pretty-printed JSON eg. for debugging and exploring the API \ No newline at end of file diff --git a/doc/REST-CalDAV-CardDAV/Mail.md b/doc/REST-CalDAV-CardDAV/Mail.md index ad6f29c831..9fa28477e8 100644 --- a/doc/REST-CalDAV-CardDAV/Mail.md +++ b/doc/REST-CalDAV-CardDAV/Mail.md @@ -10,7 +10,7 @@ Authentication is via Basic Auth with username and a password, or a token valid Implemented requests (relative to https://example.org/egroupware/groupdav.php) -- ```GET /mail``` get different mail accounts available to user +#### **GET** `/mail` get different mail accounts available to user
Example: Querying available identities / signatures @@ -29,29 +29,29 @@ Content-Type: application/json ```
-- ```POST /mail[/]``` send mail for default or given identity +#### **POST** `/mail[/]` send mail for default or given identity
Example: Sending mail The content of the POST request is a JSON encoded object with following attributes -- ```to```: array of strings with (RFC882) email addresses like ```["info@egroupware.org", "Ralf Becker ", "/home//", ...]``` -- ```attachmentType```: one of the following strings (optional, default "attach") +- `to`: array of strings with (RFC882) email addresses like `["info@egroupware.org", "Ralf Becker ", "/home//", ...]` +- `attachmentType`: one of the following strings (optional, default "attach") - "attach" send as attachment - "link" send as sharing link - "share_ro" send a readonly share using the current file content (VFS only) - "share_rw" send as writable share (VFS and EPL only) -- ```shareExpiration```: "yyyy-mm-dd" or e.g. "+2days", default not accessed in 100 days (EPL only) -- ```sharePassword```: string with password required to access share, default none (EPL only) -- ```folder```: folder to store send mail, default Sent folder -- ```priority```: 1: high, 3: normal (default), 5: low +- `shareExpiration`: "yyyy-mm-dd" or e.g. "+2days", default not accessed in 100 days (EPL only) +- `sharePassword`: string with password required to access share, default none (EPL only) +- `folder`: folder to store send mail, default Sent folder +- `priority`: 1: high, 3: normal (default), 5: low ``` curl -i https://example.org/egroupware/groupdav.php/mail --user \ @@ -89,7 +89,7 @@ Content-Type: application/json ```
-- ```POST /mail[/]/compose``` launch compose window +#### **POST** `/mail[/]/compose` launch compose window
Example: Opening a compose window @@ -116,7 +116,7 @@ Content-Type: application/json ```
-- ```POST /mail/attachments/``` upload mail attachments +#### **POST** `/mail/attachments/` upload mail attachments
Example: Uploading an attachment to be used for sending or composing mail @@ -135,12 +135,12 @@ Location: https://example.org/egroupware/groupdav.php/mail/attachments/ "location": "/mail/attachments/" } ``` -> When using curl to upload attachments it's important to use ```--data-binary```, just ```-d``` or ```--data``` is NOT sufficient! +> When using curl to upload attachments it's important to use `--data-binary`, just `-d` or `--data` is NOT sufficient! > Use a `X-No-Location: true` header to get NO `Location: ` header with HTTP status `201 Created` back, but a simple `200 Ok`!
-- ```POST /mail[/]/view``` view an eml file +#### **POST** `/mail[/]/view` view an eml file
Example: Uploading an eml file to be viewed @@ -162,25 +162,25 @@ HTTP/1.1 200 Ok ``` > You get a `404 Not Found`, if the user is NOT online, like in compose. -> When using curl to upload attachments it's important to use ```--data-binary```, just ```-d``` or ```--data``` is NOT sufficient! +> When using curl to upload attachments it's important to use `--data-binary`, just `-d` or `--data` is NOT sufficient!
-- ```POST /mail[/]/vacation``` enable or disable vacation message or forwarding +#### **POST** `/mail[/]/vacation` enable or disable vacation message or forwarding
Example: Setting a vacation message with given start- and end-date The content of the POST request is a JSON encoded object with following attributes -- ```status```: "on" (default, if not start/end), "off" or "by_date" (default, if start/end given) -- ```start```: start-date "YYYY-mm-dd", or e.g. "+2days" (optional) -- ```end```: end-date (last day of vacation) "YYYY-mm-dd" (optional) -- ```text```: vacation notice to the sender (can container $$start$$ and $$end$$ placeholders) -- ```modus```: "notice+store" (default) send vacation notice and store in INBOX, "notice": only send notice, "store": only store -- ```forwards```: array of strings with (RFC882) email addresses (optional, default no forwarding) -- ```addresses```: array of strings with (RFC882) email addresses (optional, default primary email address only) -- ```days```: integer, after how many days should a sender get the vacation message again (optional, otherwise default is used) +- `status`: "on" (default, if not start/end), "off" or "by_date" (default, if start/end given) +- `start`: start-date "YYYY-mm-dd", or e.g. "+2days" (optional) +- `end`: end-date (last day of vacation) "YYYY-mm-dd" (optional) +- `text`: vacation notice to the sender (can container $$start$$ and $$end$$ placeholders) +- `modus`: "notice+store" (default) send vacation notice and store in INBOX, "notice": only send notice, "store": only store +- `forwards`: array of strings with (RFC882) email addresses (optional, default no forwarding) +- `addresses`: array of strings with (RFC882) email addresses (optional, default primary email address only) +- `days`: integer, after how many days should a sender get the vacation message again (optional, otherwise default is used) -> The ```POST``` request is handled like a ```PATCH```, only the given attributes are replaced, use null to unset them. +> The `POST` request is handled like a `PATCH`, only the given attributes are replaced, use null to unset them. ``` curl -i https://example.org/egroupware/groupdav.php/mail/vacation --user -X POST -H 'Content-Type: application/json' \ @@ -195,7 +195,7 @@ HTTP/1.1 200 Ok ```
-- ```GET /mail[/]/vacation``` get current vacation message/handling +#### **GET** `/mail[/]/vacation` get current vacation message/handling
Example: Querying the current vacation handling diff --git a/doc/REST-CalDAV-CardDAV/README.md b/doc/REST-CalDAV-CardDAV/README.md index 65e9a96907..cdf50746d3 100644 --- a/doc/REST-CalDAV-CardDAV/README.md +++ b/doc/REST-CalDAV-CardDAV/README.md @@ -11,34 +11,34 @@ CalDAV/CardDAV is build on HTTP and WebDAV, implementing the following additiona One can use the following URLs relative (!) to https://example.org/egroupware/groupdav.php -- ```/``` base of Cal|Card|GroupDAV tree, only certain clients (KDE, Apple) can autodetect folders from here -- ```/principals/``` principal-collection-set for WebDAV ACL -- ```/principals/users//``` -- ```/principals/groups//``` -- ```//``` users home-set with -- ```//addressbook/``` addressbook of user or group given the user has rights to view it -- ```//addressbook-/``` shared addressbooks from other user or group -- ```//addressbook-accounts/``` all accounts current user has rights to see -- ```//calendar/``` calendar of user given the user has rights to view it -- ```//calendar/?download``` download whole calendar as .ics file (GET request!) -- ```//calendar-/``` shared calendar from other user or group (only current !) -- ```//inbox/``` scheduling inbox of user -- ```//outbox/``` scheduling outbox of user -- ```//infolog/``` InfoLog's of user given the user has rights to view it -- ```/addressbook/``` all addressbooks current user has rights to, announced as directory-gateway now -- ```/addressbook-accounts/``` all accounts current user has rights to see -- ```/calendar/``` calendar of current user -- ```/infolog/``` infologs of current user -- ```/(resources|locations)//calendar``` calendar of a resource/location, if user has rights to view -- ```//(resource|location)-``` shared calendar from a resource/location -- ```/mail/``` REST API only -- ```/timesheet/``` REST API only -- ```/smallpart/``` REST API only +- `/` base of Cal|Card|GroupDAV tree, only certain clients (KDE, Apple) can autodetect folders from here +- `/principals/` principal-collection-set for WebDAV ACL +- `/principals/users//` +- `/principals/groups//` +- `//` users home-set with +- `//addressbook/` addressbook of user or group given the user has rights to view it +- `//addressbook-/` shared addressbooks from other user or group +- `//addressbook-accounts/` all accounts current user has rights to see +- `//calendar/` calendar of user given the user has rights to view it +- `//calendar/?download` download whole calendar as .ics file (GET request!) +- `//calendar-/` shared calendar from other user or group (only current !) +- `//inbox/` scheduling inbox of user +- `//outbox/` scheduling outbox of user +- `//infolog/` InfoLog's of user given the user has rights to view it +- `/addressbook/` all addressbooks current user has rights to, announced as directory-gateway now +- `/addressbook-accounts/` all accounts current user has rights to see +- `/calendar/` calendar of current user +- `/infolog/` infologs of current user +- `/(resources|locations)//calendar` calendar of a resource/location, if user has rights to view +- `//(resource|location)-` shared calendar from a resource/location +- `/mail/` REST API only +- `/timesheet/` REST API only +- `/smallpart/` REST API only Shared addressbooks or calendars are only shown in the users home-set, if he subscribed to it via his CalDAV preferences! Calling one of the above collections with a GET request / regular browser generates an automatic index -from the data of an ```allprop``` PROPFIND, allow browsing CalDAV/CardDAV tree with a regular browser. +from the data of an `allprop` PROPFIND, allow browsing CalDAV/CardDAV tree with a regular browser. ## REST API: using EGroupware CalDAV/CardDAV server with JSON - [Addressbook](Addressbook.md) @@ -61,9 +61,8 @@ from the data of an ```allprop``` PROPFIND, allow browsing CalDAV/CardDAV tree w > a "Content-Type: application/json" header, otherwise you talk to the CalDAV/CardDAV server and don't get the response you expect! Following RFCs / drafts used/planned for JSON encoding of resources -* [draft-ietf-jmap-jscontact: JSContact: A JSON Representation of Contact Data](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-jscontact) -([* see at end of document](#implemented-changes-from-jscontact-draft-08)) -* [draft-ietf-jmap-jscontact-vcard: JSContact: Converting from and to vCard](https://datatracker.ietf.org/doc/html/draft-ietf-jmap-jscontact-vcard/) +* [rfc9553: JSContact: A JSON Representation of Contact Data](https://datatracker.ietf.org/doc/html/rfc9553) +* [rfc9555: JSContact: Converting from and to vCard](https://datatracker.ietf.org/doc/html/rfc9555) * [rfc8984: JSCalendar: A JSON Representation of Calendar Data](https://datatracker.ietf.org/doc/html/rfc8984) ### ToDos diff --git a/doc/REST-CalDAV-CardDAV/Timesheet.md b/doc/REST-CalDAV-CardDAV/Timesheet.md index c254900661..727f5aebef 100644 --- a/doc/REST-CalDAV-CardDAV/Timesheet.md +++ b/doc/REST-CalDAV-CardDAV/Timesheet.md @@ -29,7 +29,7 @@ Following schema is used for JSON encoding of timesheets ### Supported request methods and examples -* **GET** to collections with an ```Accept: application/json``` header return all timesheets (similar to WebDAV PROPFIND) +#### **GET** to collections with an `Accept: application/json` header return all timesheets (similar to WebDAV PROPFIND)
Example: Getting all timesheets of a given user @@ -160,7 +160,7 @@ curl 'https://example.org/egroupware/groupdav.php/timesheet/?sync-token=https://
Example: Requesting only changes since last sync -#### ```sync-token``` from last sync need to be specified (note the null for a deleted resource!) +#### `sync-token` from last sync need to be specified (note the null for a deleted resource!) ``` curl 'https://example.org/egroupware/groupdav.php/timesheet/?sync-token=https://example.org/egroupware/groupdav.php/timesheet/1400867824' -H "Accept: application/pretty+json" --user { @@ -176,7 +176,7 @@ curl 'https://example.org/egroupware/groupdav.php/timesheet/?sync-token=https:// ```
-* **GET** requests with an ```Accept: application/json``` header can be used to retrieve single resources / JsTimesheet schema +#### **GET** requests with an `Accept: application/json` header can be used to retrieve single resources / JsTimesheet schema
Example: GET request for a single resource showcasing available fieldes @@ -216,7 +216,7 @@ curl 'https://example.org/egroupware/groupdav.php/timesheet/140' -H "Accept: app ```
-* **POST** requests to collection with a ```Content-Type: application/json``` header add new entries in timesheet collections +#### **POST** requests to collection with a `Content-Type: application/json` header add new entries in timesheet collections (Location header in response gives URL of new resource)
Example: POST request to create a new resource @@ -252,7 +252,7 @@ ETag: "204:1707233040" ```
-* **PUT** requests with a ```Content-Type: application/json``` header allow modifying single resources (requires to specify all attributes!) +#### **PUT** requests with a `Content-Type: application/json` header allow modifying single resources (requires to specify all attributes!)
Example: PUT request to update a resource @@ -278,7 +278,7 @@ HTTP/1.1 204 No Content
-* **PATCH** request with a ```Content-Type: application/json``` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject) +#### **PATCH** request with a `Content-Type: application/json` header allow to modify a single resource by only specifying changed attributes as a [PatchObject](https://www.rfc-editor.org/rfc/rfc8984.html#type-PatchObject)
Example: PATCH request to modify a timesheet with partial data @@ -294,7 +294,7 @@ HTTP/1.1 204 No content ```
-* **DELETE** requests delete single resources +#### **DELETE** requests delete single resources
Example: DELETE request to delete a timesheet @@ -306,4 +306,4 @@ HTTP/1.1 204 No content ```
-> one can use ```Accept: application/pretty+json``` to receive pretty-printed JSON eg. for debugging and exploring the API \ No newline at end of file +> one can use `Accept: application/pretty+json` to receive pretty-printed JSON eg. for debugging and exploring the API \ No newline at end of file