[Open Source] Low-Code Development Platform, Enterprise-Grade API Publishing and Management System, One-Stop API Services
![[Open Source] Low-Code Development Platform, Enterprise-Grade API Publishing and Management System, One-Stop API Services](https://yy123.ink/api/img/1782591601677-6ivw26.jpg)
1. Project Overview

Crabc is a low-code development platform and enterprise-grade API publishing and management system built with frameworks such as SpringBoot, JWT, and Mybatis, along with an SPI plugin mechanism. It supports SQL and NoSQL data sources, including MySQL, Oracle, PostgreSQL, SQL Server, Elasticsearch, and MongoDB. Simply write SQL in the editor to quickly generate REST interfaces and make them available as services. It supports Mybatis tag syntax such as if, data conversion, parameter retrieval, and complex execution of multiple SQL statements with transaction support. This reduces the need to write SQL for generic interfaces, allowing developers to focus on implementing more complex business logic. Additional data sources can be supported through plugins. It also provides one-stop API services, including multiple authentication methods, rate limiting, circuit breaking, caching, and monitoring.
2. Open Source License
Licensed under Apache-2.0
3. Screenshots
Screenshots
Home Page

API Development

API Properties

Request Parameters

Live Preview

Application Creation

API List

Database Type

Rate Limiting and Circuit Breaking

API Application

Application Approval

4. Feature Overview
Crabc is a low-code development platform and enterprise-grade API publishing system built with frameworks such as SpringBoot, JWT, and Mybatis, along with an SPI plugin mechanism. It enables users to visually write SQL and publish it as API services.
- Hub: View publicly published APIs on the homepage, browse their details, and apply for access.
- API Development: Quickly publish REST APIs externally simply by writing SQL. Supports executing multiple SQL statements simultaneously, Mybatis tag syntax, SQL placeholders such as #, $, and @, relationships, pagination, and live previews.
- Data Source Management: Supports connections to various SQL/NoSQL databases, including database creation, editing, connection testing, and deletion.
- Personal Center: User management and password changes.
- Application List: Create and manage applications using Code authentication and signature authentication, and authorize API calls online.
- API Management: View APIs under development and published APIs, manage their online/offline status, and edit and upgrade them.
- API Logs: View the call log list and request details for published APIs.
- Monitoring and Statistics: Visually view API call statistics and monitoring data.
- Traffic Control Rules: Rate limiting, caching, circuit breaking, alerts, and more.
- Application and Approval: Apply to use publicly available APIs in the Hub and approve requests from others to call your published APIs.
Module
cn.crabc ├── crabc-gateway // Gateway service (under development) ├── crabc-auth // Authorization service (under development) ├── crabc-boot // Business modules │ └── crabc-admin // Admin management │ └── static // Frontend static pages [9377] │ └── crabc-datasource // Data source loading module │ └── crabc-api // API call execution module │ └── crabc-spi // Plugin definition module │ └── crabc-plugin // Plugin center ├── crabc-common // Common module ├── db // SQL scripts ├──pom.xml // Dependencies
5. Tech Stack
Startup Instructions
1. First, execute the db/dml.sql script to create the database tables and initialize the data. 2. Run crabc-admin/AdminApplication.java in your development environment.
Access URL: [http://127.0.0.1:9377](http://127.0.0.1:9377) Username/Password: admin/admin123
Documentation
Detailed content, please refer to README.md document.
Start with Docker
First, execute the db/dml.sql script to create the database tables and initialize the data. MySQL 8.0 or later is recommended.
> docker pull crabc/crabc-admin:latest > docker run -p 9377:9377 --env db_url=JDBC connection (e.g., jdbc:mysql://localhost:3306) --env db_user=Database username --env db_pwd=Database password -d --name crabc-admin crabc/crabc-admin:latest
Access URL: [http://127.0.0.1:9377](http://127.0.0.1:9377) Username/Password: admin/admin123
