summaryrefslogtreecommitdiff
path: root/server/vendor/php-opencloud/common/src/Common/Api/ApiInterface.php
blob: d4629dc0b1d680d6e5ffff384d8946667b88409c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php declare(strict_types=1);

namespace OpenCloud\Common\Api;

/**
 * All classes which implement this interface are a data representation of a remote OpenCloud API.
 * They do not execute functionality, but instead return data for each API operation for other parts
 * of the SDK to use. Usually, the data is injected into {@see OpenCloud\Common\Api\Operation} objects.
 * The operation is then serialized into a {@see GuzzleHttp\Message\Request} and sent to the API.
 *
 * The reason for storing all the API-specific data is to decouple service information from client
 * HTTP functionality. Too often it is mixed all across different layers, leading to duplication and
 * no separation of concerns. The choice was made for storage in PHP classes, rather than YAML or JSON
 * syntax, due to performance concerns.
 *
 * @package OpenCloud\Common\Api
 */
interface ApiInterface
{
}