Trong bài viết trước, mình đã hướng dẫn các bạn cách cấu hình HTTP Listener Connector trong Anypoint Studio cho các ứng dụng Mule ESB. Trong bài viết này, mình sẽ hướng dẫn các bạn sử dụng nó thông qua một ví dụ các bạn nhé!
Ví dụ của mình là: mình cần một ứng dụng Mule ESB có thể nhận một request HTTP POST, sau đó lấy data từ body của request để chuyển đổi qua định dạng khác. Và để đơn giản, mình sẽ log body data này, sau khi chuyển đổi, ra console.
Đầu tiên, mình sẽ tạo mới một Mule Maven project như sau:
Để ứng dụng Mule ESB của chúng ta có thể nhận HTTP request từ client, chúng ta cần sử dụng HTTP Connector trong phần Message Source của Mule Flow.
Các bạn có thể tìm thấy HTTP Connector trong phần Mule Palette của Anypoint Studio:
Hãy kéo và thả nó vào trong phần Editor của Anypoint Studio các bạn nhé!
Để cấu hình cho HTTP Connector này, các bạn có thể tham khảo bài viết trước.
Ở đây, mình cấu hình như sau:
Global HTTP Listener Configuration:
Sau khi nhận request từ client, chúng ta sẽ sử dụng một Transformer component tên là Byte Array to String để lấy byte data từ request và convert nó sang String.
Để thêm component này, trong Mule Palette, các bạn hãy search “Byte Array to String”:
sau đó kéo và thả nó vào phần Editor của Anypoint Studio.
Với Transformer component này, chúng ta không cần phải cấu hình gì cả. Mọi thử từ input tới output cho component này sẽ được cấu hình một cách tự động.
Sau khi chuyển đổi request data sang String, payload của Mule Message sẽ là String này.
Bước cuối cùng mà chúng ta cần làm đó là log String này ra console sử dụng Logger Component.
Hãy tìm Logger Component này trong Mule Palette các bạn nhé!
Kéo và thả nó vào phần Editor
Cho Logger component này, chúng ta chỉ cần cấu hình để nó có thể in ra payload từ Mule Message như sau:
OK, vậy là chúng ta đã hoàn thành nhu cầu của chúng ta rồi đó các bạn. Bây giờ, hãy thử kiểm tra xem kết quả ra sao?
Các bạn hãy chạy ứng dụng của chúng ta lên, mở Postman rồi gửi một POST request với data là “name=Khanh” tới ứng dụng của chúng ta:
rồi kiểm tra kết quả trong console:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
INFO 2017-08-23 17:17:16,704 [main] org.mule.module.launcher.StartupSummaryDeploymentListener: ********************************************************************** * - - + DOMAIN + - - * - - + STATUS + - - * ********************************************************************** * default * DEPLOYED * ********************************************************************** ******************************************************************************************************* * - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS + - - * ******************************************************************************************************* * mule-esb-using-http-listener-connector * default * DEPLOYED * ******************************************************************************************************* INFO 2017-08-23 17:19:44,406 [[mule-esb-using-http-listener-connector].HTTP_Listener_Configuration.worker.01] org.mule.api.processor.LoggerMessageProcessor: name=Khanh |