Laravel Tutorial: Creating a Headless System with Vercel PostgreSQL and CRUD Operations

Laravel Tutorial: Creating a Headless System with Vercel PostgreSQL and CRUD Operations

Table of Content

This tutorial will guide you through setting up a headless Laravel application with Vercel PostgreSQL as the database. We will cover how to create CRUD (Create, Read, Update, Delete) operations for a simple system.

40 Open-source Free Laravel Projects, CMS, ERP, Headless, CRM and More
Laravel is an innovative and powerful web application framework that is completely free and open-source. This PHP-based framework was created by Taylor Otwell in 2011 as an alternative to CodeIgniter, with a focus on simplicity and ease of use. At its core, Laravel is built on the Model-View-Controller (MVC) architecture

Prerequisites

  • Basic knowledge of Laravel and PHP.
  • A Vercel account.
  • Node.js and Composer installed on your machine.

Set Up Laravel Project

Configure Environment:

Copy the .env.example file to .env and update the configuration:

cp .env.example .env

Generate an application key:

php artisan key:generate

Install Laravel:

Open your terminal and run the following command to create a new Laravel project:

composer create-project --prefer-dist laravel/laravel headless-laravel

Navigate into the project directory:

cd headless-laravel

Set Up Vercel PostgreSQL

Create a Vercel Project:
Log in to your Vercel account and create a new project. Connect your GitHub repository where your Laravel project is hosted.

Add PostgreSQL to Vercel:
Go to the Vercel dashboard, navigate to the "Integrations" tab, and add PostgreSQL. Vercel will provide the database URL.

Update Laravel Environment:
In your .env file, update the database configuration:

DB_CONNECTION=pgsql
DB_HOST=your-database-host
DB_PORT=5432
DB_DATABASE=your-database-name
DB_USERNAME=your-database-username
DB_PASSWORD=your-database-password

Create Models and Migrations

Define the Migration:

Open the migration file in database/migrations/ and define the schema:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

Run the migration to create the posts table:

php artisan migrate

Generate a Model:

Let's create a Post model with a migration file:

php artisan make:model Post -m

The -m flag creates a migration file for the Post model.

Create CRUD Operations

Implement Controller Methods:
Open PostController.php and implement the CRUD operations:

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function index()
    {
        return Post::all();
    }

    public function show($id)
    {
        return Post::find($id);
    }

    public function store(Request $request)
    {
        $post = Post::create($request->all());
        return response()->json($post, 201);
    }

    public function update(Request $request, $id)
    {
        $post = Post::findOrFail($id);
        $post->update($request->all());
        return response()->json($post, 200);
    }

    public function destroy($id)
    {
        Post::destroy($id);
        return response()->json(null, 204);
    }
}

Define Routes:


Open routes/api.php and add routes for the CRUD operations:

use App\Http\Controllers\PostController;

Route::get('posts', [PostController::class, 'index']);
Route::get('posts/{id}', [PostController::class, 'show']);
Route::post('posts', [PostController::class, 'store']);
Route::put('posts/{id}', [PostController::class, 'update']);
Route::delete('posts/{id}', [PostController::class, 'destroy']);

Create Controller:

Generate a controller for handling CRUD operations:

php artisan make:controller PostController

Deploy to Vercel

Commit Changes: Ensure all changes are committed to your Git repository.

Deploy via Vercel:
Push your repository to GitHub, and Vercel will automatically deploy the changes. Vercel will detect the Laravel framework and set up the environment accordingly.

Access the API:
Once the deployment is complete, you can access your API endpoints through the Vercel URL, for example, https://your-project.vercel.app/api/posts.

Test the API

You can test the API using tools like Postman or cURL to ensure that all CRUD operations work as expected.

12 Open-source API Testing Frameworks for REST-API and GraphQL
API testing frameworks are tools or libraries that provide a structured approach to testing Application Programming Interfaces (APIs). They offer a set of functions, methods, and utilities to automate the process of API testing. Purpose of API Testing Frameworks API testing frameworks are used to: * Automate the testing of APIs
  • List all posts: GET /api/posts
  • Get a specific post: GET /api/posts/{id}
  • Create a new post: POST /api/posts
  • Update a post: PUT /api/posts/{id}
  • Delete a post: DELETE /api/posts/{id}

Conclusion

You've successfully set up a headless Laravel system with Vercel PostgreSQL and implemented CRUD operations. This setup is now ready for further development or integration with a front-end application.








Open-source Apps

9,500+

Medical Apps

500+

Lists

450+

Dev. Resources

900+

Read more

Bias in Healthcare AI: How Open-Source Collaboration Can Build Fairer Algorithms for Better Patient Care

Bias in Healthcare AI: How Open-Source Collaboration Can Build Fairer Algorithms for Better Patient Care

The integration of artificial intelligence (AI), particularly large language models (LLMs) and machine learning algorithms, into healthcare has transformed the industry dramatically. These technologies enhance various aspects of patient care, from diagnostics and treatment recommendations to continuous patient monitoring. However, the application of AI in healthcare is not without challenges.