Create and Consume Endpoints
You can download this as a zip file, then extract.
Run cmd
and set the directory to the project.
Run composer install
.
change .env.example
to .env
and make necessary changes to your database
php artisan serve
For Windows 10, download XAMPP, then download composer
.
create a folder at C:\xampp\htdocs\
, my folder name is laravel-crud
change directory
cd C:\xampp\htdocs\laravel-crud
create the project
composer create-project laravel/laravel laravel-crud
I'm using the database named laravel_test
,
later this will be used to create one table,
APP_NAME=first_laravel
APP_ENV=local
APP_KEY=base64:Vo0OoJYrIF8H5W+8TCZ8LfLYJkh3UBNP3cKP7H3fngc=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_test
DB_USERNAME=root
DB_PASSWORD=
then
php artisan make:model Crud -m
then Crud.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Crud extends Model
{
protected $table = 'cruds';
protected $fillable = ['username', 'password'];
}
then create_cruds_table.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->name();
$table->password();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
};
then
php artisan migrate
php artisan make:controller ApiController
then
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Models\Crud;
use App\Models\User;
use Illuminate\Support\Facades\DB;
class ApiController extends Controller
{
public function getAllCRUDS()
{
$cruds = Crud::get()->toJson(JSON_PRETTY_PRINT);
return response($cruds, 200);
//endpoint GET http://127.0.0.1:8000/api/cruds';
}
public function createCRUD(Request $request)
{
$cruds = new Crud;
$cruds->username = $request->username;
$cruds->password = $request->password;
$cruds->save();
return response()
->json(["message" => "user created"], 201);
//endpoint POST http://127.0.0.1:8000/api/cruds/create
}
public function getCRUD($id)
{
if (Crud::where('id', $id)->exists())
{
$cruds = Crud::where('id', $id)->get()
->toJson(JSON_PRETTY_PRINT);
return response($cruds, 200);
//endpoint GET http://127.0.0.1:8000/api/cruds/[id]';
}
else
{
return response()->json(["message" => "record not found"], 404);
}
}
public function updateCRUD(Request $request, $id)
{
if (Crud::where('id', $id)->exists())
{
$cruds = Crud::find($id);
$cruds->username = is_null($request->username) ? $cruds->username : $request->username;
$cruds->password = is_null($request->password) ? $cruds->password : $request->password;
$cruds->save();
return response()
->json(["message" => "records updated successfully"], 200);
}
else
{
return response()
->json(["message" => "record not found"], 404);
}
//endpoint PUT http://127.0.0.1:8000/api/cruds/[id]
}
public function deleteCRUD($id)
{
if (Crud::where('id', $id)->exists())
{
$cruds = Crud::find($id);
$cruds->delete();
return response()
->json(["message" => "records deleted"], 202);
}
else
{
return response()
->json(["message" => "record not found"], 404);
}
//endpoint DELETE http://127.0.0.1:8000/api/cruds/id
}
public function authenticate(Request $request)
{
$userExists = DB::table('cruds')->where('username', '=', $request->input('username'))
->exists();
$password = DB::table('cruds')->where('password', '=', $request->input('password'))
->exists();
//echo $request->input('username');
//if($request->input('username') == "admin") {
//echo "admin";
//}
if ($request->input('username') == "admin" && $request->input('password') == "@admin")
{
return response()
->json(["message" => "success"], 200);
}
else
{
if ($userExists)
{
if ($password)
{
//echo "Success";
return response()->json(["message" => "success"], 201);
}
else
{
return response()
->json(["message" => "not found"], 404);
//echo "wrong username or password";
}
}
else
{
//echo "wrong username or password";
return response()
->json(["message" => "not found"], 404);
}
}
}
}
routing :
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('cruds', 'App\Http\Controllers\ApiController@getAllCRUDS');
Route::get('cruds/{id}', 'App\Http\Controllers\ApiController@getCRUD');
Route::post('cruds/create', 'App\Http\Controllers\ApiController@createCRUD');
Route::put('cruds/{id}', 'App\Http\Controllers\ApiController@updateCRUD');
Route::delete('cruds/{id}','App\Http\Controllers\ApiController@deleteCRUD');
GET http://127.0.0.1:8000/api/cruds
GET http://127.0.0.1:8000/api/cruds/[id]
POST http://127.0.0.1:8000/api/cruds/create
PUT http://127.0.0.1:8000/api/cruds/[id]
DELETE http://127.0.0.1:8000/api/cruds/id
POST http://127.0.0.1:8000/api/authenticate