public static function applyApiProvider(callable $value, array &$arguments, HandlerList $list)
 {
     $api = new Service(ApiProvider::resolve($value, 'api', $arguments['service'], $arguments['version']), $value);
     $arguments['api'] = $api;
     // todo add endpoint
     $arguments['serializer'] = Service::createSerializer($api, $arguments['endpoint']);
     // todo createParser
     $arguments['parser'] = Service::createParser($api);
     // todo get protocol
     $arguments['errorParser'] = Service::createErrorParser($api->getProtocol());
     $list->prependBuild(Middleware::requestBuilder($arguments['serializer']), 'builder');
 }
 public function testCanGetDefaultProvider()
 {
     $p = ApiProvider::defaultProvider();
     $this->assertArrayHasKey('upyun', $this->readAttribute($p, 'manifest'));
 }