# Tainacan Application Programming Interface ### Brief Description A REST API for Tainacan Plugin. This API uses the Wordpress REST API. ### Routes and Endpoints #### Collections 1. Route `wp-json/tainacan/v2/collections/(?P[\d]+)` 1.1. Endpoints supported: 1.1.1 GET (Fetch a collection) 1.1.2 DELETE (Delete or Trash a collection and all your dependencies) ``` To delete pass in body of a requisition the parameter is_permanently as true. To only trash pass false. ``` 1.1.3 PATCH or PUT (Update a collection) Example of JSON passed in body for updating a collection:     ``` {    "name": "string",    "description": "string", ...  } ``` 2. Route `wp-json/tainacan/v2/collections` 2.1. Endpoints supported: 2.1.1 GET (Fetch all collections) 2.1.2 POST (Create a collection). Example of JSON passed in body for creating a collection: ```javascript {   "name": "string",    "description": "string",    "status": "string",    "order": "string",    "parent": "integer",    "slug": "string",    "default_orderby": "string",    "default_order": "string",    "columns": "string",    "default_view_mode": "string"  } ``` #### Items 1. Route `wp-json/tainacan/v2/collection/(?P[\d]+)/items` 1.1. Endpoints supported: 1.1.1 GET (Fetch all items from a collection) 1.1.2 POST (Create a item in a collection) Example of JSON passed in body for creating a item: ```javascript {   "title": "string",    "description": "string",    "status": "string",  } ``` 2. Route `wp-json/tainacan/v2/items/(?P[\d]+)` 2.1. Endpoints supported: 2.1.1 GET (Fetch a item) 2.1.2 DELETE (Delete or Trash a item and all your dependencies) ``` To delete pass in body of a requisition the parameter is_permanently as true. To only trash pass false. ``` 2.1.3 PATCH or PUT (Update a item) Example of JSON passed in body for updating a item:     ``` {    "title": "string",    "description": "string", ...  } ``` #### Field 1. Route `wp-json/tainacan/v2/collection/(?P[\d]+)/field` 1.1. Endpoints supported: 1.1.1 POST (Create a field in collection and all your items) In body of requisition pass a JSON with the attributes of field like: ```javascript {       "name": "string",       "description": "string",       "field_type": "string",       "order": "string",       "parent": "integer",       "required": "string",       "collection_key": "string",       "multiple": "string",       "cardinality": "string",       "privacy": "string",       "mask": "string",       "default_value": "string",       "field_type_options": "string",    } ``` 1.1.2 GET (Fetch all collection field) 2. Route `wp-json/tainacan/v2/item/(?P[\d]+)/field` 2.1. Endpoints supported: 2.1.1 POST (Set a value of item field) In body of requisition pass a JSON with value e and id of field like: ```javascript {     "field_id": "integer",     "values": "[any, type]"  } ``` 2.1.2 GET (Fetch all item field, with your values) #### Taxonomies 1. Route `wp-json/tainacan/v2/taxonomies` 1.1. Endpoints supported: 1.1.1. GET (Fetch all taxonomies) 1.1.2. POST (Create a taxonomy) Example of JSON passed in body for creating a taxonomy: ```javascript {   "name": "string",    "description": "string",    "status": "string",    "parent": "string",    "slug": "string",    "allow_insert": "string",    "collections_ids": "array"  } ``` 2. Route `wp-json/tainacan/v2/taxonomies/(?P[\d]+)` 2.1. Endpoints supported: 2.1.1 GET (Fetch a taxonomy) 2.1.2 DELETE (Delete or trash a taxonomy) ``` To delete pass in body of requisition the parameter is_permanently as true. To only trash pass false. ``` 2.1.3 PATCH or PUT (Update a taxonomy) Example of JSON passed in body for updating a taxonomy:     ```javascript {    "name": "string",    "description": "string", ...  } ``` #### Filters 1. Route `wp-json/tainacan/v2/filters` 1.1 Endpoints supported: 1.1.1 POST (Create a filter) Example of JSON passed in body for creating a filter: ```javascript {   "collection_id": "int",   "field_id": "int", "filter_type": "string",   "filter": {     "name": "string",     "description": "string", ...   } } ``` 1.1.2 GET (Fetch all filters) 2. Route `wp-json/tainacan/v2/filters/(?P[\d]+)` 2.1. Endpoints supported: 2.1.1 DELETE (Delete or trash a filter) ``` To delete pass in body of requisition the parameter is_permanently as true. To only trash pass false. ``` 2.1.2 PATCH or PUT (Update a filter) Example of JSON passed in body for updating a filter: ```javascript { "name": "string", ... } ``` 2.1.3 GET (Fetch a filter) #### Terms 1. Route `wp-json/tainacan/v2/taxonomy/(?P[\d]+)/terms` 1.1 Endpoints supported: 1.1.1 POST (Create a term in a taxonomy) Example of JSON passed in body for creating a term: ```javascript {   "name": "string",   "user": "int", ... } ```    1.1.2 GET (Fetch all tems of a taxonomy) 2. Route `wp-json/tainacan/v2/taxonomy/(?P[\d]+)/terms/(?P[\d]+)` 2.1 Endpoints supported: 2.1.1 GET (Fecth a term of a taxonomy) 2.1.2 PATCH or PUT (Update a term in a taxonomy) Example of JSON passed in body for updating a term: ```javascript {   "name": "string", ... } ``` 2.1.3 DELETE (Delete a term of a taxonoy)