# example-crud **Repository Path**: zl_java/example-crud ## Basic Information - **Project Name**: example-crud - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-27 - **Last Updated**: 2025-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Example-CRUD [![Build Status](https://dev.azure.com/lganzzzo/lganzzzo/_apis/build/status/oatpp.example-crud?branchName=master)](https://dev.azure.com/lganzzzo/lganzzzo/_build?definitionId=9?branchName=master) A complete example of a "CRUD" service (UserService) built with Oat++. In this example: - How to create CRUD endpoint. - How to use [oatpp ORM](https://oatpp.io/docs/components/orm/#high-level-overview) - SQLite example. - How to document API with Swagger-UI and OpenApi 3.0.0. More about Oat++: - [Oat++ Website](https://oatpp.io/) - [Oat++ Github Repository](https://github.com/oatpp/oatpp) - [Get Started](https://oatpp.io/docs/start) ## Overview This project is using the following oatpp modules: - [oatpp](https://github.com/oatpp/oatpp) - [oatpp-swagger](https://github.com/oatpp/oatpp-swagger) - [oatpp-sqlite](https://github.com/oatpp/oatpp-sqlite) ### Project layout ``` |- CMakeLists.txt // projects CMakeLists.txt |- sql/ // SQL migration scripts for SQLite database |- src/ | | | |- controller/ // Folder containing REST Controllers (UserController) | |- db/ // Folder containing the database client | |- dto/ // DTOs are declared here | |- service/ // Service business logic classes (UserService) | |- AppComponent.hpp // Service config | |- DatabaseComponent.hpp // Database config | |- SwaggerComponent.hpp // Swagger-UI config | |- App.cpp // main() is here | |- test/ // test folder |- utility/install-oatpp-modules.sh // utility script to install required oatpp-modules. ``` --- ### Build and Run #### Using CMake ##### Pre Requirements - `oatpp` - `oatpp-swagger` - `oatpp-sqlite` with `-DOATPP_SQLITE_AMALGAMATION=ON` cmake flag. **Note:** You may run `utility/install-oatpp-modules.sh` script to install required oatpp modules. ##### Build Project ``` $ mkdir build && cd build $ cmake .. $ make $ ./crud-exe # - run application. ``` #### In Docker ``` $ docker build -t example-crud . $ docker run -p 8000:8000 -t example-crud ``` --- ### Endpoints #### HTML |HTTP Method|URL|Description| |---|---|---| |`GET`|http://localhost:8000/ | Root page | |`GET`|http://localhost:8000/swagger/ui | Swagger UI page | #### User Service |HTTP Method|URL|Description| |---|---|---| |`POST`|http://localhost:8000/users | Create new User | |`PUT`|http://localhost:8000/users/{userId} | Update User by ID | |`GET`|http://localhost:8000/users/{userId} | Get User by ID | |`DELETE`|http://localhost:8000/users/{userId} | Delete User by ID | |`GET`|http://localhost:8000/users/offset/{offset}/limit/{limit} | Get All Users with Paging |