--- last_review: "2025-01-01" last_reviewer: "-" documented_code: [ ] --- ```{tags} developer, explanation ``` # HTTP Resources :::{note} This page has been migrated from the old documentation, and has not yet been fully revised. There might be inconsistencies or errors when using with current LinkAhead versions. ::: % TODO: Issue: https://gitlab.indiscale.com/caosdb/src/linkahead-docs/-/issues/113 HTTP resources are implemented in the [resource](/reference/server/api/org/caosdb/server/resource/package-index.rst) package, in classes inheriting from [AbstractCaosDBServerResource](/reference/server/api/org/caosdb/server/resource/AbstractCaosDBServerResource.rst) ( which inherits Restlet's [Resource](https://javadocs.restlet.talend.com/2.4/jee/api/org/restlet/resource/Resource.html) class). The main [CaosDBServer](/reference/server/api/org/caosdb/server/CaosDBServer.rst) class defines which HTTP resource (for example `/Entity/{specifier}`) will be handled by which class ([EntityResource](/reference/server/api/org/caosdb/server/resource/transaction/EntityResource.rst) in this case). Implementing classes need to overwrite for example the `httpGetInChildClass()` method (or methods corresponding to other HTTP request methods such as POST, PUT, ...). Typically, they might call the `execute()` method of a [Transaction](/reference/server/api/org/caosdb/server/transaction/Transaction.rst) object. Transactions are explained in detail in the [Transactions and Schedules](./transaction.md#transactions-and-schedules) section. ```{eval-rst} .. uml:: @startuml abstract AbstractCaosDBServerResource { {abstract} httpGetInChildClass() {abstract} httpPostInChildClass() {abstract} ...InChildClass() } abstract RetrieveEntityResource class EntityResource AbstractCaosDBServerResource <|-- RetrieveEntityResource RetrieveEntityResource <|-- EntityResource @enduml ```