コード例 #1
0
 /**
  * @test
  * @expectedException InvalidArgumentException
  * @expectedExceptionMessage Serializer does not support format doge
  */
 public function it_throws_for_formats_not_supported_by_the_serializer()
 {
     $serializer = $this->getMock(Serializer::class);
     $serializer->expects(static::once())->method('supportsDecoding')->with('doge')->willReturn(false);
     $adapter = new SymfonySerializerAdapter($serializer);
     $adapter->addContentType('application/json', 'doge');
 }
コード例 #2
0
ファイル: Builder.php プロジェクト: kix/apiranha
 /**
  * @param string                    $baseUrl
  * @param array                     $definitions
  * @param array                     $listeners
  * @param HttpAdapterInterface|null $adapter
  * @param Router|null               $router
  * @return self
  */
 public static function createEndpoint($baseUrl, array $definitions, array $listeners = array(), HttpAdapterInterface $adapter = null, Router $router = null)
 {
     if (!$adapter) {
         $adapter = new GuzzleHttpAdapter(new Client());
     }
     if (!$router) {
         $router = new Router();
     }
     if (!count($listeners)) {
         $serializerAdapter = new SymfonySerializerAdapter(new Serializer([], [new JsonEncoder()]));
         $serializerAdapter->addContentType('application/json', 'json');
         $listeners[Endpoint::LISTENER_AFTER_RESPONSE] = new ContentTypeListenener($serializerAdapter);
         $listeners[Endpoint::LISTENER_AFTER_DATA] = new ReflectionHydratorListener();
     }
     $endpoint = new Endpoint($adapter, $router, $baseUrl);
     foreach ($listeners as $evt => $listener) {
         $endpoint->addListener($evt, $listener);
     }
     $driver = new AnnotationDriver();
     foreach ($definitions as $interfaceName) {
         $resources = $driver->createDefinitions($interfaceName);
         foreach ($resources as $resource) {
             $endpoint->addResourceDefinition($resource);
         }
     }
     return $endpoint;
 }
コード例 #3
0
ファイル: ExampleCommand.php プロジェクト: kix/apiranha
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $driver = new AnnotationDriver();
     $definitions = $driver->createDefinitions(GithubApi::class);
     $adapter = new GuzzleHttpAdapter(new Client());
     $endpoint = new Endpoint($adapter, new Router(), 'http://api.github.com');
     foreach ($definitions as $definition) {
         $endpoint->addResourceDefinition($definition);
     }
     $serializerAdapter = new SymfonySerializerAdapter(new Serializer([], [new JsonEncoder()]));
     $serializerAdapter->addContentType('application/json', 'json');
     $endpoint->addListener(Endpoint::LISTENER_AFTER_RESPONSE, new ContentTypeListenener($serializerAdapter));
     $endpoint->addListener(Endpoint::LISTENER_AFTER_DATA, new ReflectionHydratorListener());
     /** @var GithubApi $endpoint */
     $result = $endpoint->listRepos($input->getArgument('username'));
     var_dump($result);
 }