A simple RESTful non-blocking API, to send and receive money

Overview

Money Transfer API

About

A simple RESTful non-blocking API, to send and receive money.

  • Simple;
  • Configurable;
  • With notifications;
  • Testable;
  • Made with Laravel 9;
  • Turbocharged by Laravel Octane -> Swoole;
  • Open source.

Requirements to local run

  • Docker;
  • Docker Compose;
  • External API services to:
    • Authorize transfers: CONSULT_EXTERNAL_API_SERVICE;
    • Notify users about transfers: NOTIFICATION_USER_API_SERVICE'.

Installation

  • Clone or download this repository;
  • In your terminal run: docker-compose up;
  • Rename .env.example to .env
  • In your terminal execute the commands:
    • docker network create transfer-network
    • docker volume create --name=mongo-database
    • docker exec -it transfer-api composer install
    • docker exec -it transfer-api php artisan key:generate
    • docker exec -it transfer-api php artisan migrate:fresh --seed

Test

Just run docker exec -it transfer-api composer test

How to execute

Make a new transfer

POST

http://localhost:8000/api/v1/users/transfer

header: Content-Type: application/json

body

{
    "value": "100.00",
    "payer": "0730a5e4-89a2-4dd9-8d31-ab6344b0ba60",
    "payee": "0a35e361-873a-4075-8615-643fa1297fc0"
}

List Users

GET

http://localhost:8000/api/v1/users

Show User

Users Ids are UUID, for example:0a35e361-873a-4075-8615-643fa1297fc0

GET

http://localhost:8000/api/v1/users/{userId}

Swagger-ui Docs

http://localhost:8000/api/documentation

Todo list

  • More tests;
  • GitHub Actions;
  • New endpoints;
  • Json API Docs.
You might also like...
đź“Ą A simple web page to download addons through the GmodStore API.
đź“Ą A simple web page to download addons through the GmodStore API.

📥 GmodStore Downloader In French Ce petit site Internet permet le téléchargement d'addons en provenance du GmodStore sans passer le site en ligne mai

Simple-cache - PHP FIG Simple Cache PSR

PHP FIG Simple Cache PSR This repository holds all interfaces related to PSR-16. Note that this is not a cache implementation of its own. It is merely

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

Created simple login system and chat type website using mysql database along with php and html , css and javascript.

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application
TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application

TinyFileManager is web based file manager and it is a simple, fast and small file manager with a single file, multi-language ready web application for storing, uploading, editing and managing files and folders online via web browser. The Application runs on PHP 5.5+, It allows the creation of multiple users and each user can have its own directory and a build-in support for managing text files with cloud9 IDE and it supports syntax highlighting for over 150+ languages and over 35+ themes.

Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.

⚠️ Note - Not the latest version This is the repository for Bolt 3. Please know that Bolt 5 has been released. If you are starting a new project, plea

Modern, simple and fresh looking glass based on Bootstrap 5 and PHP 7
Modern, simple and fresh looking glass based on Bootstrap 5 and PHP 7

Modern, simple and fresh looking glass based on Bootstrap 5 and PHP 7. A looking glass is a network utility which is made user-friendly for everyone to use. It allows you to execute network related commands within a remote network, usually that of an ISP.

This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 4.0.0 platform. It allows you to query some other server information
This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 4.0.0 platform. It allows you to query some other server information

QueryServer This is a plugin written in PHP programming language and running on the PocketMine platform that works stably on the API 4.0.0 platform. I

Retrieve MySejahtera App's data from MySejahtera API and show to users via web browser. Written in PHP
Retrieve MySejahtera App's data from MySejahtera API and show to users via web browser. Written in PHP

MySejahtera-PHP-Web Retrieve MySejahtera App's data from MySejahtera API and show to users via web browser. Written in PHP. Disclaimer This web app is

Quick and dirty PHP script to turn a Twitter feed into an RSS feed using Twitter's v2 API

Twitter to RSS Quick and dirty PHP script that turns a given Twitter feed into a RSS feed using Twitter's API v2 (the free version!) Does some basic l

Owner
Daniel Rodrigues
@PHPJasper, PHP community evangelist
Daniel Rodrigues
Create a PHP 8 CRUD (Create, Read, Update, Delete) RESTful API with an MySQL database.

Créer une API RESTful PHP 8 CRUD (Create, Read, Update , Delete) simple avec MySQL et PDO (PHP Data Objects) Détails du référentiel : Lire, insérer, m

HOUESSOU BĂ©ryl 5 Oct 10, 2022
Simple RESTful Web App to find Real Estate Listings

Unreal Estate is a simple RESTful web app that allows the user to find Real Estate listings they might be interested in. Unreal Estate is built on Laravel 5 and PHP 7.

Jett Durham 0 Jun 12, 2019
Subscriptify - a simple subscription platform(only RESTful APIs with MySQL)

Create a simple subscription platform(only RESTful APIs with MySQL) in which users can subscribe to a website (there can be multiple websites in the system). Whenever a new post is published on a particular website, all it's subscribers shall receive an email with the post title and description in it. (no authentication of any kind is required)

Md Rafsan Jani Rafin 2 Mar 24, 2022
A good, non-specialized Laravel base site for faster app development

Larastrap This is a non-specialized Laravel base site containing generalized components for faster development of nearly any type of site. It includes

Memphis PHP 2 Jul 31, 2022
Versione non ufficiale del repository ad uso personale

GAzie - Gestione Aziendale Che cos'è GAzie GAzie è un software gestionale (ERP) multiazienda in grado di gestire tanti aspetti dell'azienda, dalla ges

Lab51.org contributes to Opensource Projects 2 Dec 14, 2022
A simple Lumen web app to send basic commands and fetch the current status to your Ford vehicle with Sync 3 enabled

FordPass Access This is a simple Lumen web app to send basic commands and fetch the current status to your Ford vehicle with Sync 3 enabled. Local dev

Sam 4 Nov 21, 2022
This application gives you the ability to send a newsletter to multiple subscribers with use of SMTP or an external driver like Mailgun

Laravel Newsletter Laravel Newsletter is an open source project that can be used for sending newsletters to multiple subscribers, mailing lists, ... a

Nathan Geerinck 59 Dec 29, 2022
Simple searching for postcodes to retrieve geographic information. Support for various API providers and a unified address/output format.

Postcode Search Simple searching for postcodes to retrieve geographic information. Support for various API providers and a unified address/output form

Gary Green 10 Nov 29, 2022
A simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp

This package is a simple wrapper for PHP Intervention Library to provide a more simple interface and convenient way to convert images to webp - next generation format - extension, and resize them to render only needed sizes.

eyad hamza 18 Jun 28, 2022
Simple-podcast-generator - 👉 A very simple way to host your podcast files and generate the RSS Podcast feed 🎙

Podcast RSS Feed Generator A very simple way to host your podcast files and generate the RSS Podcast feed ?? ?? Contents Summary Requirements Installa

♚ PH⑦ de Soria™♛ 11 Dec 2, 2022