zingle / api-resource-mapper
Installs: 16 301
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: ^7.1
Requires (Dev)
- illuminate/container: ^5.3
- illuminate/support: ^5.3
- symfony/property-access: ^3.1
- symfony/yaml: ^3.1
- zingle-com/laravel-modules: dev-master
This package is not auto-updated.
Last update: 2024-11-15 23:15:26 UTC
README
The Zingle API Resource Mapper provides helpers for structuring and serializing models and collections returned by 3rd-party APIs
Installation
Add zingle/api-resource-mapper
to composer.json
. Add ApiResourceMapperProvider
to config/app.php
Usage
For any module requiring resource mapping, add a mapper registration to its service provider:
private function registerMapper() { $this->app->bind('zingle.foo_module.meta_loader', function (Container $app) { /** @var Module $module */ $module = $app->make('laravel_modules.repository')->find('FooModule'); return new Loader($module->getExtraPath('Resources/config/mapping')); }); $this->app->bind('zingle.foo_module.model_meta_factory', function (Container $app) { return new ModelMetaFactory($app->make('zingle.foo_module.meta_loader')); }); return $this; }
In the constructor of the AbstractResource for the Module, generate a mapper using the factory:
$this->mapper = $mapperFactory->getMapper(app('zingle.foo_module.model_meta_factory'));