framework:
serializer: { enabled: true }
property_info: { enabled: true }
{ name: 'auto1.api.endpoint_provider', priority: 0 }
services:
your_app.api.endpoint.provider:
class: Auto1\ServiceAPIComponentsBundle\Service\Endpoint\EndpointProviderConfiguration
arguments:
- '@auto1.api.endpoint.factory'
- '@your_app.api.endpoint_configuration.loader'
tags:
- { name: 'auto1.api.endpoint_provider', priority: 0 }
your_app.api.endpoint_configuration.loader:
class: Auto1\ServiceAPIComponentsBundle\Service\Endpoint\EndpointsConfigurationLoader
arguments:
- '%kernel.project_dir%/src/Resources/endpoints.yml'
Only for proof of concept etc.
class YourProvider implements EndpointProviderInterface
{
public function getEndpoints(): array
{
return [
new EndpointImmutable(
...,
),
];
}
}
services:
your_app.api.endpoint.provider:
class: YourProvider
tags:
- { name: 'auto1.api.endpoint_provider', priority: 0 }
# Auth
- method: 'POST'
baseUrl: '%wkda.java_api.url%'
path: '/v1/auth/oauth/token'
requestFormat: 'url'
requestClass: 'Auto1\ServiceDTOCollection\Authentication\OAuth\Request\PostRefreshTokenRequest'
responseClass: 'Auto1\ServiceDTOCollection\Authentication\OAuth\Response\Token'
- method: 'GET'
baseUrl: '%wkda.java_api.admin_url%'
path: '/v1/auth/user/admin/{userUuid}/roles'
requestFormat: 'url'
requestClass: 'Auto1\ServiceDTOCollection\Authentication\User\Request\GetUserRolesRequest'
responseClass: 'Auto1\ServiceDTOCollection\Authentication\User\Response\UserRoles'
# CarLead
- method: 'GET'
baseUrl: '%wkda.java_api.url%'
path: '/v1/carlead/vin/{vin}'
requestClass: 'Auto1\ServiceDTOCollection\CarLead\CarLeadRead\Request\GetCarDetailsByVinRequest'
responseClass: 'Auto1\ServiceDTOCollection\CarLead\CarLeadRead\Response\CarLead[]'
# Auth
refreshToken:
method: 'POST'
baseUrl: '%wkda.java_api.url%'
path: '/v1/auth/oauth/token'
requestFormat: 'url'
requestClass: 'Auto1\ServiceDTOCollection\Authentication\OAuth\Request\PostRefreshTokenRequest'
responseClass: 'Auto1\ServiceDTOCollection\Authentication\OAuth\Response\Token'
getUserRoles:
method: 'GET'
baseUrl: '%wkda.java_api.admin_url%'
path: '/v1/auth/user/admin/{userUuid}/roles'
requestFormat: 'url'
requestClass: 'Auto1\ServiceDTOCollection\Authentication\User\Request\GetUserRolesRequest'
responseClass: 'Auto1\ServiceDTOCollection\Authentication\User\Response\UserRoles'
# CarLead
getCarLeadByVin:
method: 'GET'
baseUrl: '%wkda.java_api.url%'
path: '/v1/carlead/vin/{vin}'
requestClass: 'Auto1\ServiceDTOCollection\CarLead\CarLeadRead\Request\GetCarDetailsByVinRequest'
responseClass: 'Auto1\ServiceDTOCollection\CarLead\CarLeadRead\Response\CarLead[]'
class GetCarDetailsByVinRequest implements ServiceRequestInterface
{
private $vin;
public function setVin(string $vin): self
{
$this->vin = $vin;
return $this;
}
public function getVin()
{
return $this->vin;
}
}
For altering the default behaviour of Url resolution see UrlResolverCompilerPass
and use auto1.api.url_resolver
tag together with priority
:
# this is a default resolver
auto1.api.url_resolver.parameter_aware:
class: Auto1\ServiceAPIComponentsBundle\Service\UrlResolver\ParameterAwareUrlResolver
arguments:
- '@service_container'
tags:
- { name: 'auto1.api.url_resolver', priority: 0 }
To output all registered endpoints:
bin/console auto1.debug.endpoints