PHPackages                             starlight93/laravel-smart-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. starlight93/laravel-smart-api

ActiveLibrary[API Development](/categories/api)

starlight93/laravel-smart-api
=============================

Restful API Generator

v1.2.2(8mo ago)3233MITPHP

Since Oct 16Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/starlight93/laravel-smart-api)[ Packagist](https://packagist.org/packages/starlight93/laravel-smart-api)[ RSS](/packages/starlight93-laravel-smart-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (7)Versions (8)Used By (0)

Laravel/Lumen Online Editor &amp; Rest API Generator
====================================================

[](#laravellumen-online-editor--rest-api-generator)

Online Editor
-------------

[](#online-editor)

Fitur editing project laravel atau lumen secara online dengan protocol HTTP(s) dengan editor online:  atau  secara aman dan sangat cepat.

Background
----------

[](#background)

Editor online untuk development sangat bermanfaat untuk mengurangi kelambatan development, publikasi aplikasi, bahkan bisa langsung dilakukan di server staging hingga umur laptop developer bisa lebih lama karena tak pernah menjalankan versi localhost.

Berbagai macam editor online yang pernah kita temui:

1. Online Gitlab/Github Editor yang dapat dimanfaatkan hingga melakukan committing tanpa harus melakukan push dari local. Server git sudah memfasilitasi hal ini dengan keterbatasan editornya (rata-rata menggunakan library [Monaco Editor](https://microsoft.github.io/monaco-editor/) yakni pendukung utama core dari VSCode)
2. Ekstensi-ekstensi pada editor misal VSCode, Atom, Sublime, atau yang lain berbasis FTP. Developer dapat melakukan editing project dengan editor andalannya secara online dengan protokol FTP. Namun sayangnya tracking dari perubahan file adalah issue besar, belum lagi jika banyak developer yang mengotak-atik file yang sama. Refresh dari list file pun tidak realtime.
3. Ekstensi lain dengan protokol berbeda yakni SSH. Developer dapat langsung mengotak-atik file di server dengan protocol secure ini dengan sesuka hati sebagaimana melakukan editting di local. Ini cara sebagaimana sultan merasa menjadi pemilik folder project pada si server. Namun jika kita memberikan akses SSH hanya untuk *edit online* ke developer yang tidak seharusnya mendapat hak tinggi ke server, rasanya cukup mengerikan.

Ketiganya sangat bermanfaat terutama jika project dikerjakan tidak secara keroyokan alias single fighter. Sedangkan cara normal yakni localhost dan git dipadu dengan CI/CD untuk deployment ke server sebenarnya sudah powerful dan ideal. Namun untuk bebarapa kasus khusus, CI/CD memerlukan cost besar entah di biaya service maupun kesukarelaan untuk menukar security key agar dapat masuk ke server tujuan. Selain itu, pengumpulan garapan dari banyak developer yang sekiranya sudah mumpuni (tanpa perlu banyak direview kodingnya) menjadi sangat lambat. Sehingga dari development ke publikasi hingga review para tester di sisi aplikasi penuh menjadi lambat.

Pada akhirnya package ini menjadi solusi lain bagi kita untuk mengotak atik project dengan mudah dan cepat, aman (karena protocol HTTP(s) seperti web pada umumnya), realtime, dan pastinya membatasi gerak-gerik tidak penting dari developer. Apa maksudnya membatasi gerak gerik? Editor online ini memiliki pattern yang mudah dipahami dengan mengarahkan developer ke pattern kerja yang khusus (tidak dapat secara bebas create file).

Online Editor API
-----------------

[](#online-editor-api)

Fitur:

- Editor online dibuat menggunakan [Monaco Editor](https://microsoft.github.io/monaco-editor/) (core dari vscode) yang dicustomisasi agar ringan dan semakin meningkatkan produktivitas
- Menuntun pattern memulai project dengan membatasi developer untuk membuat file sesuai role
- Membuat, edit, dan eksekusi migration file (up - down) tanpa command line
- Membuat, edit, dan eksekusi alter file (up - down) tanpa command line
- Auto create template model yang relevan dengan migration dan bisa diedit sesuai kebutuhan seperti role, events CRUD, format response.
- Visualisasi view data 10 rows terakhir
- Visualisasi view data sesuai query statement di dalam editor (run)
- Run Query (default rollback) atau commit untuk create, update, delete via editor
- Data Editor (CRUD + commit) dengan mini DB Client di dalam editor
- Membuat, edit, dan eksekusi hingga preview result Testing file
- Membuat, edit, dan publish blade file dan javascript file dengan
- Fitur truncate table
- Membuat, edit, dan autoload class untuk keperluan selain CRUD, misal logic kompleks yang disendirikan di suatu class di dalam folder app/Cores
- Fitur backup file yang editable (non-generated files) dan database
- Fitur restore backup file hingga database
- Fitur sinkronisasi antar project dengan 1 sumber (replicate project)
- Visualisasi tracking file changes (mini diff file seperti git)
- Fitur uploader data copy paste dari excel dan query-able sebelum diupload
- Aman dan dapat dimatikan fitur editor ini jika project sudah running tanpa perlu editing lagi

Instalasi:
----------

[](#instalasi)

- Create laravel project baru seperti di [Tutorial Official](https://laravel.com/docs/master/installation#your-first-laravel-project)
- Masuk ke root project yang baru dibuat
- Install package dengan composer:

```
   composer require starlight93/laravel-smart-api
```

- Daftarkan Provider Editor dan API Generator
- Laravel: buka file config/app.php, tambahkan di bagian key: `providers``Starlight93\LaravelSmartApi\ApiServiceProvider::class`
- Lumen: buka file bootstrap/app.php tambahkan baris berikut:

```
   $app->register(Starlight93\LaravelSmartApi\ApiServiceProvider::class);
```

Untuk lumen tak perlu mengaktifkan withFacades() dan withEloquent() karena akan auto dinyalakan oleh provider generator

Start Project:
--------------

[](#start-project)

- Matikan tracking file permission di git ROOT Project (jika project anda sudah di `git init` sebelumnya)

```
   git config core.fileMode false
```

- Buka console command line posisi di ROOT Project, dan lakukan step berikut:

```
   php artisan project:start
```

Environment Variable
--------------------

[](#environment-variable)

Lihat vendor/starlight93/config/ untuk lebih lengkapnya. Variable di bawah dapat dipasang di .env folder project

### Basic Env Key

[](#basic-env-key)

KeyDescriptionDefaultEDITOR\_PASSWORDPassword untuk diisikan di header request dengan key header: laradev, cek [Middleware](src/Http/Middleware/EditorMiddleware.php?plain=1#L16)12345EDITOR\_FRONTENDERSList user untuk developer frontend yang akan hanya mendapat akses blade dan js di editor online, misal: 001-dev-fe,002-dev-fe,dst cek [Middleware](src/Http/Middleware/EditorMiddleware.php?plain=1#L19)-EDITOR\_BACKENDERSList user untuk developer backend yang akan hanya mendapat akses migration,model,dan bebarapa hal terkait Backend saja di editor online cek [Middleware](src/Http/Middleware/EditorMiddleware.php?plain=1#L20)-EDITOR\_OWNERSList user untuk root dveloper yang akan dapat melihat semua fitur [Middleware](src/Http/Middleware/EditorMiddleware.php?plain=1#L21)dev-ownerGOOGLE\_CLIENT\_IDUntuk keperluan config google auth (Laravel Socialite) [Usage](src/ApiServiceProvider.php?plain=1#L199)-GOOGLE\_CLIENT\_SECRETUntuk keperluan config google auth (Laravel Socialite) [Usage](src/ApiServiceProvider.php?plain=1#L200)-LOG\_SENDERUntuk logging websocket [Usage](src/Helpers/EditorFunc.php?plain=1#207)-LOG\_PATHUntuk path channel logging websocket [Usage](src/Helpers/EditorFunc.php?plain=1#205)-CLIENT\_CHANNELUntuk trigger send websocket ke listener lain seperti frontend misalnya [Usage](src/Helpers/EditorFunc.php?plain=1#205)-API\_ROUTE\_PREFIXPrefix Endpoint route untuk restful API [Usage](config/api.php?plain=1#6)apiAPI\_USER\_TABLEDefault User's table name [Usage](config/api.php?plain=1#4)usersAPI\_PROVIDERRegister Provider Class Name Tambahan, contoh "\\App\\Your\\Class" [Usage](config/api.php?plain=1#7)-- Setelah melakukan pengaturan di .env file, usahakan setting database connection telah benar, maka aplikasi akan mampu melakukan create models (di /app/Models/CustomModels) secara otomatis sesuai isi table di database (reverse engineering). Lakukan command CLI berikut:

```
   php artisan project:model
```

Rest API Generator
------------------

[](#rest-api-generator)

Dengan membuat file migration, atau struktur DB yang ada maka akan mendapatkan fitur lengkap berikut:

- Create Read Update Delete (CRUD) Rest API single, detail, maupun sub details tanpa batasan child
- Auto Join Relationship dengan `src` dan `fk` column fake-relation (comment table)
- Fitur search, pagination, filter, ordering, dan standard reading API
- Auto validation sesuai tipe dan length data di kolom database
- Auto create Generated Models File sesuai DB (reverse Engineering)
- Auto create default Custom Models File (editable) sesuai DB (reverse Engineering)
- Auto create Visualisasi Database + Relasi sesuai DB (reverse Engineering)
- Auto create mini API Documentation + Relasi sesuai DB (reverse Engineering)
- Error logging ke tabel dan notifikasi
- Dapat berjalan dengan pattern/koding di dalam project yang lain (tanpa generator)
- Zero Config JWT Auth
- Zero Controller
- Zero Config routing
- Zero Config Schedulers
- Multi .env file sesuai sub domain atau port
- Banyak helper yang sangat sering digunakan di project seperti export pdf,excel hingga direct printing

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance64

Regular maintenance activity

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~172 days

Total

5

Last Release

249d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9cb446cdac2621d90e9d45cd7db6a49cbcba044da0bb6d2e1f85b15981ecb8b7?d=identicon)[starlight93](/maintainers/starlight93)

---

Top Contributors

[![starlight93](https://avatars.githubusercontent.com/u/4595828?v=4)](https://github.com/starlight93 "starlight93 (35 commits)")

### Embed Badge

![Health badge](/badges/starlight93-laravel-smart-api/health.svg)

```
[![Health](https://phpackages.com/badges/starlight93-laravel-smart-api/health.svg)](https://phpackages.com/packages/starlight93-laravel-smart-api)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[flat3/lodata

OData v4.01 Producer for Laravel

96320.9k](/packages/flat3-lodata)[marshmallow/laravel-facebook-webhook

A package to retrieve Facebook Leads with webhooks &amp; Graph API in Laravel.

123.2k](/packages/marshmallow-laravel-facebook-webhook)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
