Công nghệ, Laravel

[Laravel] Quên RESTful API đi GraphQL tiện hơn nhiều (phần 1)

Dạo này lười viết quá bận công việc  với lại cũng chẳng biết chia sẻ gì cho cái blog này. Cố gắng viết cho nhiều bài chút để xin Adsense mà hơi khoai. Thôi thì dạo gần đây đang làm cái cms cả api có sử dụng trò mới ( đối với mình còn anh em thì không biết thế nào ) tiện thể chia sẻ anh em luôn . Ai biết thì biết mà ai không biết thì biết.

Công việc của mình thì chủ yếu làm cms  quản lý  và viết api cho team frontend . Mà viết RESTful API mình hay vập luôn laravel cho nhanh . Nhưng dạo này chán quá  nên đổi gió qua cái mới xem sao. Chợt nhớ trước thấy anh em làm reactjs hay xử dụng Graphql  nên thử xem laravel có hỗ trợ không. Ngon choét có GraphQL framework lighthose hỗ trợ tận răng rồi chỉ việc cài vào và dùng thôi.

À mà giới thiệu qua chút vì sao mình dùng Graphql mà không phải là RESTful API như thường lệ nữa nhỉ. Thì Graphql là một ngôn ngữ truy vấn mới để bạn có thể nói chuyện với cái server  của  các bạn. Điểm thú vị của Graphql là  thông qua ngôn ngữ này mà chúng ta có thể hỏi bất cứ dữ liệu nào của Server một cách nhanh chóng chính xác và đầy đủ. Chúng ta sẽ không phải tạo ra quá nhiều endpoint để phía client có thể gọi và lấy dữ liệu. Giảm được rất nhiều thời gian code và số dòng code  cho phía backend .

Hãy ủng hộ tôi 1 cốc caffe nếu bạn cảm thấy website có ích.!

Trên đây là những lý do vì sao mình muốn thử GraphQL . Anh em muốn tìm hiểu sâu hơn có thể tìm và đọc thêm tại trang chủ của nó nhé. Ở đây mình đứng ở vai trò người dùng nên chỉ quan tâm nó đạt được mục đích sử dụng của mình hay không thôi. Ok quay lại với cái package Lighthouse-php kia nó hỗ trợ cho Laravel nên như thường lệ sẽ cài qua composer. Hướng dẫn thì có hết rồi easy game.

Như thế này :


1
<span class="token function">composer</span> require nuwave/lighthouse

Rồi như thế này :


1
php artisan vendor:publish --tag<span class="token operator">=</span>lighthouse-schema

Rồi lại thêm cái này :


1
php artisan lighthouse:ide-helper

Rồi thêm cái này nếu các bạn muốn có một cái chỗ test api như thế này:


1
<span class="token function">composer</span> require mll-lab/laravel-graphql-playground

À cái này cài xong thì bạn có thể vào theo url  /graphql-playground  để nghịch nhé. Cái đường dẫn này có thể đổi trong config của nó. Thậm chí bạn có thể chỉ định cái tool test này chỉ mở khi ở bản dev nữa cơ. Để có thể config theo ý mình thì bạn phải chạy lệnh sau để nó publish cái config của lighthouse-php vào thư mục config của project laravel đã.


1
php artisan vendor:publish --tag<span class="token operator">=</span>lighthouse-config

Rồi giờ làm trời làm bể gì tùy các bạn. Để phía client có thể sử dụng cái api này mà không bị dính lỗi CORS thì bạn phải cái thêm cái package này vào  setup nhẹ một chút như sau:


1
2
3
4
5
return [
<span class="token deleted-sign deleted"><span class="token prefix deleted">-</span><span class="token line">   'paths' =&gt; ['api/*', 'sanctum/csrf-cookie'],
</span></span><span class="token inserted-sign inserted"><span class="token prefix inserted">+</span><span class="token line">   'paths' =&gt; ['api/*', 'graphql', 'sanctum/csrf-cookie'],
</span></span><span class="token unchanged"> <span class="token line">   ...
</span></span>];

Ok cài sương sương vậy là dùng được rồi đấy. Thôi mình buồn ngủ vãi mình đi ngủ đã với lại mình hết hứng viết tiếp rồi nên hẹn các bạn ở phần sau nhé. Phần sau mình sẽ nói về cách mình sử dụng  nó như thế nào.Hehe  ok bye !

Hãy ủng hộ tôi 1 cốc caffe nếu bạn cảm thấy website có ích.!

Được gắn thẻ ,