Skip to content
KroderDev edited this page Jul 8, 2025 · 5 revisions

The package includes an abstract base model for calling your API gateway. Extend Kroderdev\LaravelMicroserviceCore\Models\Model to create a resource model.

Creating a model

use Kroderdev\LaravelMicroserviceCore\Models\Model as ApiModel;

class User extends ApiModel
{
    protected $fillable = ['id', 'name'];
}

By default the endpoint is the plural kebab case of the class name (e.g. /users). Override the $endpoint property to customize it:

class Article extends ApiModel
{
    protected static string $endpoint = '/posts';
}

Remote model generator

Run the command with --remote to create a model that already extends the package base model:

php artisan make:model Order --remote

Available methods

  • all() – fetch a collection of models
  • find($id) – retrieve a model by its key
  • paginate($perPage = 15) – return a paginator
  • create(array $attributes) – create via the API
  • save() – update or create
  • delete() – remove via the API
  • refresh() – reload from the API

Traits

The model already uses ApiModelTrait which provides helpers like fromApiResponse, fromCollection and fromPaginatedResponse.

User models that store roles and permissions can also use the HasAccess trait to gain hasRole, hasPermissionTo and related helpers.

Integration with ApiGateway

By default, models are configured to fetch data directly from the ApiGateway. Ensure that your ApiGateway is properly set up and configured so that models can seamlessly interact with remote resources. This integration allows your models to retrieve and manipulate data consistently across your microservices architecture. For more details, see [ApiGateway].

Clone this wiki locally