# ![Islandora](https://cloud.githubusercontent.com/assets/2371345/25624809/f95b0972-2f30-11e7-8992-a8f135402cdc.png) Islandora [![Build Status][1]](https://travis-ci.org/Islandora-CLAW/islandora) [![Contribution Guidelines][2]](./CONTRIBUTING.md) [![LICENSE][3]](./LICENSE) ## Introduction CLAW's core Islandora module for Drupal 8.x ## Installation For a fully automated install, see [claw-playbook](https://github.com/Islandora-Devops/claw-playbook). If you're installing manually, the REST configuration for both Nodes and Media need to be enabled with `jwt_auth` for authentication and both `json` and `jsonld` formats. ## REST API Islandora has a light, mostly RESTful HTTP API that relies heavily on Drupal's core Rest module. ### /media/{media}/source You can PUT content to the `/media/{media}/source` endpoint to update the File associated with a Media. The `Content-Type` header is expected, as well as a `Content-Disposition` header of the form `attachment; filename="your_filename"` to indicate the name to give the file. Requests with empty bodies or no `Content-Length` header will be rejected. Example usage: ``` curl -u admin:islandora -v -X PUT -H 'Content-Type: image/png' -H 'Content-Disposition: attachment; filename="my_image.png"' --data-binary @my_image.png localhost:8000/media/1/source ``` ### /node/{node}/media/{field}/add/{bundle} You can POST content to the `/node/{node}/media/{field}/add/{bundle}` endpoint to create a new Media of the specified bundle using the POST body. It will be associated with the specified Node using the field from the route. The `Content-Type` header is expected, as well as a `Content-Disposition` header of the form `attachment; filename="your_filename"` to indicate the name to give the file. Requests with empty bodies or no `Content-Length` header will be rejected. Example usage: ``` curl -v -u admin:islandora -H "Content-Type: image/jpeg" -H "Content-Disposition: attachment; filename=\"test.jpeg\"" --data-binary @test.jpeg http://localhost:8000/node/1/media/my_media_field/add/my_media_bundle ``` ## Maintainers Current maintainers: * [Diego Pino](https://github.com/diegopino) * [Jared Whiklo](https://github.com/whikloj) ## Development If you would like to contribute, please get involved by attending our weekly [Tech Call][4]. We love to hear from you! If you would like to contribute code to the project, you need to be covered by an Islandora Foundation [Contributor License Agreement][5] or [Corporate Contributor License Agreement][6]. Please see the [Contributors][7] pages on Islandora.ca for more information. ## License [GPLv2](http://www.gnu.org/licenses/gpl-2.0.txt) [1]: https://travis-ci.org/Islandora-CLAW/islandora.png?branch=8.x-1.x [2]: http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg [3]: https://img.shields.io/badge/license-GPLv2-blue.svg?style=flat-square [4]: https://github.com/Islandora-CLAW/CLAW/wiki [5]: http://islandora.ca/sites/default/files/islandora_cla.pdf [6]: http://islandora.ca/sites/default/files/islandora_ccla.pdf [7]: http://islandora.ca/resources/contributors