Skip to content

A complete example of a "CRUD" service (UserService) built with Oat++.

License

Notifications You must be signed in to change notification settings

oatpp/example-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ef7628c · Oct 23, 2020

History

58 Commits
Oct 12, 2020
Oct 12, 2020
Jun 2, 2019
Oct 23, 2020
Jan 28, 2019
Oct 12, 2020
Oct 23, 2020
Oct 23, 2020
Jan 27, 2019
Oct 23, 2020
Oct 23, 2020

Repository files navigation

Example-CRUD Build Status

A complete example of a "CRUD" service (UserService) built with Oat++.

In this example:

  • How to create CRUD endpoint.
  • How to use oatpp ORM - SQLite example.
  • How to document API with Swagger-UI and OpenApi 3.0.0.

More about Oat++:

Overview

This project is using the following oatpp modules:

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