2012-07-27 29 views
5

Vì vậy, tôi đã đọc rất nhiều về SOA gần đây và đã cố gắng để thực hiện một cái gì đó hữu ích. Tôi đã bắt đầu với một blog đơn giản, tạo ra RESTful API. Càng xa càng tốt. Nó hoạt động hoàn hảo. Tuy nhiên, tôi bắt đầu kéo tóc của tôi ra khi viết giao diện web sẽ tiêu thụ API RESTful. Tôi không biết nếu tôi đang làm điều đúng đắn.Cách tiếp cận SOA RESTful thích hợp trong các ứng dụng PHP?

Ví dụ: giao diện web có bảng quản trị. Bảng điều khiển quản trị đó đưa ra các yêu cầu HTTP tới API, thông qua các tùy chọn file_get_contents và luồng. Ngay bây giờ, API là localhost, cũng như giao diện web, nhưng toàn bộ quá trình chậm hơn một chút. Thê nay đung không? Đây có phải là cách thích hợp để triển khai SOA không? Ngoài ra, tôi đang xử lý các bit nhỏ của mã trùng lặp để xác thực. Tôi nên xác nhận dữ liệu ở đâu? Trong API hoặc giao diện web? Đâu là cách tiếp cận lí tưởng nhất?

Mẹo, hướng dẫn và đặc biệt, sách được hoan nghênh. Điều này đang được thực hiện bằng cách sử dụng Silex, được xây dựng trên đầu trang của các thành phần Symfony.

+1

Chỉ cần suy nghĩ to ở đây. Giao diện web được lưu trữ thông qua localhost, do đó, API ngồi trên máy chủ không thay đổi nhiều, ngoại trừ số lượng yêu cầu thường tăng lên, và không có internet để đi qua. Máy tính của bạn đang lặp lại yêu cầu đó ngay trước khi bạn rời khỏi thẻ mạng. Thêm thức ăn cho tư tưởng. Nếu API có bất kỳ việc sử dụng nào ngoài việc phục vụ các trang web của riêng bạn, thì tôi sẽ xây dựng xác nhận dữ liệu trong API. Bằng cách này, bạn có thể phát hành cho người dùng cả chính API và trang web. – Kevin

Trả lời

1

Đó chính xác là cách tôi thực hiện. Mặc dù kết nối với localhost có vẻ như là một chi phí đầu tiên, nhưng đây là một tính năng, vì bạn đã sẵn sàng triển khai ứng dụng giao diện web của mình ở bất kỳ đâu và vẫn sử dụng API của mình, có thể ở bất cứ đâu. Tất nhiên, bạn sẽ đặt một số SSL về điều này.

Để xác thực, bạn nên xác thực trên API và trả lại HTTP status codes cho các trường hợp đó (ví dụ: "400 yêu cầu không hợp lệ" cho các thông số không hợp lệ). Bằng cách này, bất kỳ khách hàng nào khác cũng có thể giải thích phản hồi từ API và xử lý điều đó để hiển thị cách họ muốn. Trong trường hợp giao diện web của bạn, các thông báo lỗi nhỏ đẹp dựa trên mã trạng thái HTTP.

Bạn đang gặp phải sự cố nào khác? Ngoài ra, theo như kiến ​​trúc SOA chung có liên quan, this book là rất tốt.

+0

Mặc dù tôi đồng ý về nguyên tắc, nếu bạn biết rằng API của mình nằm trên cùng một hộp với giao diện người dùng, bạn nên cố gắng gọi nó trong cùng một thao tác để tiết kiệm tài nguyên bootstrapping và chi phí kết nối. Rõ ràng việc chuyển đổi giữa địa phương và từ xa nên, nếu có thể, liền mạch. Sử dụng một đối tượng khách hàng để trừu tượng điều này có thể đạt được điều đó. –