...
Code Block |
---|
<?php namespace Apps\Posts\Api\Resource; use Apps\Core_MobileApi\Api\Resource\ResourceBase; class PostResource extends ResourceBase { public $resource_name = "post"; public $module_name = "post"; public $title; public $description; public $text; } |
In the sample code above, we created PostResource class extended from ResourceBase class. 2 properties $resource_name and $module_name have to be unique and different from other apps. All other class's properties are corresponding to database fields of Posts object
...
Code Block |
---|
<?php namespace Apps\Posts\Api\Service; use Apps\Core_MobileApi\Adapter\MobileApp\MobileApp; use Apps\Core_MobileApi\Adapter\MobileApp\MobileAppSettingInterface; use Apps\Core_MobileApi\Api\AbstractResourceApi; use Apps\Posts\Api\Resource\PostResource; class PostApi extends AbstractResourceApi implements MobileAppSettingInterface { public function findAll($params = []) { $posts = [ new PostResource([ 'post_id' => 1, 'title' => "Post's title example", 'description' => "Post's description example", 'text' => "Post's description example" ]) ]; return $this->success($posts); } public function getAppSetting($param) { $app = new MobileApp('post' ,[ 'title'=> 'Posts', 'home_view'=>'menu', 'main_resource'=> new PostResource([]) ]); return $app; } /* Keep other methods empty for implementation later */ } |
...
Code Block |
---|
<?php namespace Apps\Posts; use Phpfox; Phpfox::getLib('module') ->addServiceNames([ 'mobile.post_api' => Api\Service\PostApi::class, ]); |
...
Now, you can clear cache in AdminCP and re-open the Native Mobile App, click on the Posts menu item to see how it works.
Let's review the source structure of Posts app
We put all source code to implement API integration in the Api folder