| 1: | <?php |
| 2: | |
| 3: | declare(strict_types=1); |
| 4: | |
| 5: | namespace LaravelUi5\OData\Service\Contracts; |
| 6: | |
| 7: | /** |
| 8: | * Resolves the active ODataService for an incoming request. |
| 9: | * |
| 10: | * The full path (including all path segments) is passed so implementations |
| 11: | * can support multi-tenant or prefix-based routing strategies where multiple |
| 12: | * services are mounted at different URI prefixes. |
| 13: | * |
| 14: | * @throws \RuntimeException if no service matches the given path |
| 15: | */ |
| 16: | interface ODataServiceRegistryInterface |
| 17: | { |
| 18: | /** |
| 19: | * @return ODataServiceInterface[] |
| 20: | */ |
| 21: | public function services(): array; |
| 22: | |
| 23: | public function resolve(string $fullPath): ODataServiceInterface; |
| 24: | } |
| 25: |