PHP code example of nvmcommunity / laravel-mongodb-api
1. Go to this page and download the library: Download nvmcommunity/laravel-mongodb-api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
nvmcommunity / laravel-mongodb-api example snippets
use Nvmcommunity\Alchemist\RestfulApi\Common\Exceptions\AlchemistRestfulApiException;
use Nvmcommunity\Alchemist\RestfulApi\Common\Integrations\AlchemistQueryable;
use Nvmcommunity\Alchemist\RestfulApi\FieldSelector\Handlers\FieldSelector;
use Nvmcommunity\Alchemist\RestfulApi\ResourceFilter\Handlers\ResourceFilter;
use Nvmcommunity\Alchemist\RestfulApi\ResourceFilter\Objects\FilteringRules;
use Nvmcommunity\Alchemist\RestfulApi\ResourcePaginations\OffsetPaginator\Handlers\ResourceOffsetPaginator;
use Nvmcommunity\Alchemist\RestfulApi\ResourceSearch\Handlers\ResourceSearch;
use Nvmcommunity\Alchemist\RestfulApi\ResourceSort\Handlers\ResourceSort;
class PostApiQuery extends AlchemistQueryable
{
/**
* @param FieldSelector $fieldSelector
* @return void
*/
public static function fieldSelector(FieldSelector $fieldSelector): void
{
$fieldSelector->defineFieldStructure([
'_id', 'title', 'body', 'slug'
])->defineDefaultFields(['_id']);
}
/**
* @param ResourceFilter $resourceFilter
* @return void
*/
public static function resourceFilter(ResourceFilter $resourceFilter): void
{
$resourceFilter->defineFilteringRules([
FilteringRules::String('_id', ['eq']),
FilteringRules::String('title', ['eq', 'contains']),
FilteringRules::String('body', ['eq', 'contains']),
FilteringRules::String('slug', ['eq']),
]);
}
/**
* @param ResourceOffsetPaginator $resourceOffsetPaginator
* @return void
*/
public static function resourceOffsetPaginator(ResourceOffsetPaginator $resourceOffsetPaginator): void
{
$resourceOffsetPaginator->defineDefaultLimit(10)
->defineMaxLimit(1000);
}
/**
* @param ResourceSearch $resourceSearch
* @return void
*/
public static function resourceSearch(ResourceSearch $resourceSearch): void
{
$resourceSearch->defineSearchCondition('title');
}
/**
* @param ResourceSort $resourceSort
* @return void
* @throws AlchemistRestfulApiException
*/
public static function resourceSort(ResourceSort $resourceSort): void
{
$resourceSort->defineDefaultSort('_id')
->defineDefaultDirection('desc')
->defineSortableFields(['_id', 'title']);
}
}
use App\Http\Controllers\ApiClass\User\PostApiQuery;
use App\Models\Post;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Nvmcommunity\Alchemist\RestfulApi\Common\Exceptions\AlchemistRestfulApiException;
use Nvmcommunity\LaravelMongodbApi\LaravelMongodbBuilder;
class PostController extends Controller
{
/**
* @param Request $request
* @param JsonResponse $response
* @return JsonResponse
* @throws AlchemistRestfulApiException
*/
public function index(Request $request, JsonResponse $response): JsonResponse
{
$laravelMongodbBuilder = LaravelMongodbBuilder::for(Post::class, PostApiQuery::class, $request->input());
if (! $laravelMongodbBuilder->validate($e)->passes()) {
return $response->setData($e->getErrors())->setStatusCode(400);
}
return $response->setData($laravelMongodbBuilder->getBuilder()->get());
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.