Middleware là gì? Tìm hiểu về Middleware và tự tạo middleware | TopDev

Phần mềm trung gian là gì?

Phần mềm trung gian là đoạn mã trung gian giữa yêu cầu và phản hồi. Nó nhận được một yêu cầu và thực hiện lệnh tương ứng theo yêu cầu đó. Khi hoàn tất, nó sẽ phản hồi hoặc chuyển kết quả của đại biểu tới một phần mềm trung gian khác trong hàng đợi.

Middleware là gì

Ứng dụng phần mềm trung gian là gì?

Các khung web hiện đại ngày nay sử dụng nó như một phần của ứng dụng để kết nối các phần khác lại với nhau. Đối với ứng dụng web, sử dụng middleware hiệu quả sẽ giúp chúng ta giảm số dòng code viết trong ứng dụng.

Một ví dụ phổ biến mà chúng tôi thường phải sử dụng phần mềm trung gian là dành cho các trang chỉ dành cho quản trị viên và người dùng bình thường không thể truy cập được.

Tại sao lại sử dụng nó?

Ý tưởng chung là phục vụ như một cầu nối giữa sự tương tác giữa người dùng và hệ thống trong lập trình mạng. Phần mềm trung gian sẽ đóng vai trò trung gian giữa yêu cầu/phản hồi và logic bên trong máy chủ web.

Vì vậy, một phần mềm trung gian trong khung ứng dụng web (laravel, django, Rails, expressjs…) sẽ là một chức năng để tiền xử lý, lọc yêu cầu hoặc điều chỉnh tham số trước khi xử lý logic. phản hồi trước khi gửi lại cho người dùng.

Tìm hiểu kiến ​​thức cơ bản về phần mềm trung gian laravel

Trong bài này mình sẽ lấy laravel framework làm ví dụ để hiểu khái niệm về middleware. Chúng ta sẽ xem cách tạo phần mềm trung gian tùy chỉnh trong ứng dụng laravel.

Sau khi phần mềm trung gian tùy chỉnh của bạn được tạo, chúng ta sẽ khám phá các tùy chọn có sẵn để đăng ký phần mềm trung gian đó với laravel để nó thực sự có thể được gọi trong quy trình xử lý yêu cầu.

Phần mềm trung gian

trong laravel là gì?

middleware hoạt động như một cơ chế cho phép bạn tham gia vào luồng xử lý yêu cầu của ứng dụng laravel của bạn. Trong xử lý định tuyến laravel điển hình khi thực hiện xử lý yêu cầu, phần mềm trung gian là một trong những lớp mà ứng dụng phải đi qua.

Vậy chính xác quá trình xử lý luồng yêu cầu của laravel là gì? Ví dụ: người dùng cần được xác thực để quyết định xem họ có được phép truy cập tuyến đường hiện tại hay không.

  • Yêu cầu đăng nhập
  • Chuyển hướng người dùng
  • Thay đổi/chuẩn hóa thông số
  • Xử lý phản hồi do ứng dụng laravel tạo ra
  • Thực ra, laravel mặc định đã có sẵn một số middleware quan trọng. Xác thực người dùng cũng được thực hiện bởi phần mềm trung gian này.

    Cách tạo phần mềm trung gian tùy chỉnh

    Chúng tôi sẽ tạo phần mềm trung gian tùy chỉnh của riêng mình trong phần này. Như đã nói ở trên, laravel có sẵn các middleware quan trọng, nhưng để đáp ứng nhiều nhu cầu hơn, chúng ta cần tạo thêm các middleware. Nhưng chính xác thì phần mềm trung gian này làm gì?

    Trường hợp cụ thể và thực tế nhất là khi chúng ta truy cập trang web này từ bất kỳ thiết bị di động nào, nó sẽ được chuyển hướng đến url tên miền phụ tương ứng (ví dụ: khi chúng ta truy cập trang web này: m.topdev.vn) Truy cập topdev. vn trên di động) Đối với di động, tất cả các tham số chuỗi truy vấn đều nguyên vẹn. Tất nhiên, giờ đây nó đã phản hồi nhanh, nhưng đôi khi một phiên bản di động gọn gàng và nhanh chóng lại có những hiệu ứng đẹp mắt khác

    Trong phần mềm trung gian tùy chỉnh này, chúng tôi sẽ kiểm tra tác nhân người dùng và nếu người dùng đang sử dụng thiết bị di động, người dùng sẽ được chuyển hướng đến url di động tương ứng.

    Chạy lệnh sau để tạo mẫu phần mềm trung gian mobileredirect.

    Bạn sẽ tạo tệp app/http/middleware/mobileredirect.php với đoạn mã sau.

    Việc triển khai phương thức xử lý dựa trên khung phần mềm trung gian và logic chính của phần mềm trung gian mà bạn muốn triển khai là ở đây.

    Laravel có hai loại phần mềm trung gian – trước phần mềm trung gian và sau phần mềm trung gian.

    trước khi phần mềm trung gian chạy trước khi yêu cầu thực sự được xử lý và phản hồi được tạo. Nếu không, phần mềm trung gian sau sẽ chạy sau khi ứng dụng đã xử lý yêu cầu và phản hồi đã được tạo tại thời điểm đó.

    Trong trường hợp này, chúng tôi cần chuyển hướng người dùng trước khi xử lý yêu cầu, vì vậy yêu cầu sẽ được phát triển dưới dạng phần mềm tiền trung gian.

    Tiếp tục sửa file app/http/middleware/mobileredirect.php, nội dung như sau.

    Chúng tôi sẽ kiểm tra xem có tham số di động hay không, nếu đúng, người dùng sẽ được chuyển hướng đến url di động. Bây giờ bạn cần sử dụng thư viện khám phá tác nhân người dùng để lấy thông tin người dùng trên máy khách.

    Tiếp tục, chúng tôi sẽ gọi $next($request) để giúp xử lý thêm yêu cầu. Điều quan trọng cần lưu ý trong trường hợp này là chúng tôi đặt logic phát hiện chuyển động trước khi gọi $next($request) , logic này sẽ trở thành trước phần mềm trung gian.

    Sau đó, chúng tôi tạo một phần mềm trung gian sau để xử lý yêu cầu trên.

    Bây giờ, phần mềm trung gian tùy chỉnh của chúng tôi gần như đã sẵn sàng để thử nghiệm. Bạn cần đăng ký phần mềm trung gian của mình với laravel. Ta mở file app/http/kernel.php

    Chúng tôi thêm phần mềm trung gian tùy chỉnh vào mảng sau:

    Sau khi thêm xong, chúng ta thử truy cập vào một route bất kỳ của laravel với chuỗi truy vấn mobile=1 và xem kết quả, lúc này chúng ta đã đăng ký thành công middleware mà chúng ta đã tạo. Đôi khi bạn chỉ muốn chạy phần mềm trung gian cho một tuyến cụ thể, hãy sử dụng $routemiddleware.

    Có thể bạn muốn xem thêm:

    Golang là gì? 9 framework tối ưu cho “cực căng” trong golang

    Các route laravel nhỏ gọn hơn và dễ quản lý hơn

    Tại sao nên sử dụng thử nghiệm tích hợp cho phản ứng, redux và bộ định tuyến

    Việc làm laravel với mức lương nghìn tệ đang chờ bạn ứng tuyển

Related Articles

Back to top button