code: protected function bindInboundRequest()
      {
          $this->app->singleton(JsonApiRequest::class);
          $this->app->alias(JsonApiRequest::class, 'json-api.request');
  
          $this->app->singleton(Route::class, function (Application $app) {
              return new Route(
                  $app->make(ResolverInterface::class),
                  $app->make('router')->current()
              );
          });
  
          $this->app->bind(StoreInterface::class, function () {
              return json_api()->getStore();
          });
  
          $this->app->bind(ResolverInterface::class, function () {
              return json_api()->getResolver();
          });
  
          $this->app->bind(ErrorRepositoryInterface::class, function () {
              return json_api()->getErrors();
          });
  
          $this->app->bind(ContainerInterface::class, function () {
              return json_api()->getContainer();
          });
  
          $this->app->singleton(HeaderParametersInterface::class, function (Application $app) {
              /** @var HeaderParametersParserInterface $parser */
              $parser = $app->make(HttpFactoryInterface::class)->createHeaderParametersParser();
              /** @var ServerRequestInterface $serverRequest */
              $serverRequest = $app->make(ServerRequestInterface::class);
  
              return $parser->parse($serverRequest, http_contains_body($serverRequest));
          });
  
          $this->app->singleton(EncodingParametersInterface::class, function (Application $app) {
              /** @var QueryParametersParserInterface $parser */
              $parser = $app->make(HttpFactoryInterface::class)->createQueryParametersParser();
  
              return $parser->parseQueryParameters(
                  request()->query()
              );
          });
      }
docs: Bind the inbound request services so they can be type-hinted in controllers and authorizers.
  
  @return void