PHPackages                             asligresik/easyapi - 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. asligresik/easyapi

ActiveLibrary[API Development](/categories/api)

asligresik/easyapi
==================

REST API generator for Codeigniter 4

v0.1.2(2y ago)31.8k↓100%MITPHPPHP &gt;=7.2

Since Aug 5Pushed 2y ago1 watchersCompare

[ Source](https://github.com/pandigresik/packagist-easyapi)[ Packagist](https://packagist.org/packages/asligresik/easyapi)[ RSS](/packages/asligresik-easyapi/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (13)Used By (0)

easyAPI
=======

[](#easyapi)

What is easyAPI?
----------------

[](#what-is-easyapi)

easyAPI is skeleton REST API application and integrated with swagger to generate documentation API for Codeigniter 4. With easyAPI you can generate REST API less than 5 minutes.

Installation &amp; setup
------------------------

[](#installation--setup)

- composer require asligresik/easyapi

Publish initial file for swagger documentation
----------------------------------------------

[](#publish-initial-file-for-swagger-documentation)

- `php spark api:publish` this command will copy file
    - src/Controllers/Swagger.php to app/Controllers
    - src/Views to app/Views
    - src/public/assets to public/assets
    - src/Commands/API/template to app/Commands/API/template

Override default template
-------------------------

[](#override-default-template)

- edit file in folder app/Commands/API/template

Generate REST API
-----------------

[](#generate-rest-api)

- `php spark api:generate` or `php spark api:generate -p Modules\API\` to generate file in spesific folder after that, system will ask you table name will generate that REST API. We can choose one table or all, if we want generate all write `all` or write one table name exist in your database If there is no error, system will generate for you controller, model and entity file.
- Last you must add new route will display in last command to `app/Config/Routes.php`.
- Generate api.yaml using command `./vendor/bin/openapi -o ./public/assets/api.yaml ./app` to show API docs using swagger using datasource format yaml (default)
- Generate api.json using command `./vendor/bin/openapi -o ./public/assets/api.json ./app` to show API docs using swagger using datasource format json (optional)
- Open API documentation in

Feature
-------

[](#feature)

- Support searching data using multiple column
- Support searching date column
- Support pagination

Example
-------

[](#example)

- join with other table, you can look at [ArtikelKategoriModel.php](https://github.com/pandigresik/easyAPI/blob/master/app/Models/ArtikelKategoriModel.php)
- example parameter in swagger for order data *{"order":\[{"id":"desc"},{"tgl\_upload":"asc"}\]}*
- example parameter in swagger for search data *{"search":\[{"id\_kategori":1}\]}*
- example parameter in swagger for search range data *{"search":\[{"tgl\_upload":{"start":"2016-01-01", "end":"2020-01-01"} }\]}*
- example parameter in swagger for search using like *{"search":\[{"judul":"membangun%25"}\]}* or *{"search":\[{"judul":"%25membangun%25"}\]}* use `%25` not `%` you can place `%25` on before, after and combination before and after as your keyword to search data
- search data based on column name *{base\_url}/artikels?search\[id\_kategori\]=1*
- order data based on column name *{base\_url}/artikels?order\[id\]=desc&amp;order\[tgl\_upload\]=asc*
- search and order data based on column name *{base\_url}/artikels?search\[id\_kategori\]=1&amp;order\[id\]=desc&amp;order\[tgl\_upload\]=asc*
- search with pagination *{base\_url}/artikels?page=1&amp;limit=10*
- search and order with pagination *{base\_url}/artikels?search\[id\_kategori\]=1&amp;order\[id\]=desc&amp;order\[tgl\_upload\]=asc&amp;page=1&amp;limit=10*
- search using between operator if we want filter data based range of date or etc *{base\_url}/artikels?search\[tgl\_upload\]\[start\]=2016-01-01&amp;search\[tgl\_upload\]\[end\]=2020-01-01*
- search using keyword *{base\_url}/artikels?search\[judul\]=membangun%25* or *{base\_url}/artikels?search\[judul\]=%25membangun%25* will produce like operator on query
- Search with multiple column

    ```

    ```

    `http://localhost:8080/wpOptions?search[option_name]=%mailserver%&search[autoload]=yes&search[option_id][start]=17&search[option_id][end]=18&limit=20`

Todo
----

[](#todo)

- create example using this application

Copyright
---------

[](#copyright)

easyApi dikembangkan dan dimaintain oleh [asligresik](https://github.com/pandigresik)

Lisensi
-------

[](#lisensi)

Lisensi dari easyApi adalah [MIT License](LICENSE) namun proyek yang dibangun menyeseuaikan dengan kebijakan masing-masing

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community7

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 ~93 days

Recently: every ~115 days

Total

12

Last Release

1087d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/534d8f0124a395c65a8231cb8c39cb1babaa9eb5a7a1380b0f92582f401ede41?d=identicon)[pandigresik](/maintainers/pandigresik)

---

Top Contributors

[![pandigresik](https://avatars.githubusercontent.com/u/1853475?v=4)](https://github.com/pandigresik "pandigresik (20 commits)")

### Embed Badge

![Health badge](/badges/asligresik-easyapi/health.svg)

```
[![Health](https://phpackages.com/badges/asligresik-easyapi/health.svg)](https://phpackages.com/packages/asligresik-easyapi)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[darkaonline/swagger-lume

OpenApi or Swagger integration to Lumen

3372.3M3](/packages/darkaonline-swagger-lume)[jlapp/swaggervel

A great way to integrate Swagger into Laravel

492931.6k2](/packages/jlapp-swaggervel)[light/yii2-swagger

swagger intergation with yii2

154801.6k4](/packages/light-yii2-swagger)[yii2mod/yii2-swagger

Swagger Documentation Generator for Yii2 Framework

63384.7k9](/packages/yii2mod-yii2-swagger)[alt3/cakephp-swagger

Instant Swagger documentation for your CakePHP 4.x APIs

64197.3k3](/packages/alt3-cakephp-swagger)

PHPackages © 2026

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