Quick api question

Hi, just started with cockpit and I have a very trivial question:
I have 5 collections, is it possible to get the data from them with 1 api request ?

2 Likes

You can create a custom api endpoint.

with some code like this (not tested):

$collection1 = cockpit('collections')->find('collection1');
$collection2 = cockpit('collections')->find('collection2');
return compact('collection1', 'collection2');

Thanks ill try this.

It worked, but it does not like if I put access token in headers, also is it possible to manually authenticate in the custom endpoint in case i want to encrypt the everything related to the request ? kind of encrypted request > decrypt > data > encrypt > send back

Theoretically… You could add a custom route with all custom code. If you add a snippet to /config/bootstrap.php

$app->bind('/api/my_custom_endpoint', function() {
    $params = $this->params();
    $collection = $this->module('collections')->find('collection1');
    return $collection;
});

Then you should be able to request it via
https://example.com/api/my_custom_endpoint?param1=foo&param2=bar

(not tested)

1 Like