Biến yêu cầu và phản hồi

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Khi gửi yêu cầu tới proxy API, bạn có thể chuyển bất kỳ hoặc tất cả thông tin sau, tuỳ thuộc vào cách định cấu hình proxy API:

  • Tiêu đề của yêu cầu
  • Tham số truy vấn
  • Dữ liệu biểu mẫu
  • Tải trọng XML hoặc JSON
  • URI tài nguyên

Theo mặc định, tất cả dữ liệu trong yêu cầu được chuyển không thay đổi từ ProxyEndpoint đến Điểm cuối đích. Do đó, khi TargetEndpoint gửi yêu cầu đến máy chủ phụ trợ, tất cả thông tin trong yêu cầu ban đầu sẽ được chuyển đến dịch vụ phụ trợ.

Điều này cũng đúng đối với phản hồi mà Edge nhận được từ dịch vụ phụ trợ. Theo mặc định, tất cả dữ liệu nhận được trong phản hồi sẽ được chuyển không thay đổi đến ứng dụng đã tạo ra của bạn.

Cách truyền dữ liệu yêu cầu đến phần phụ trợ máy chủ không?

Hình ảnh sau đây cho thấy một định nghĩa của proxy API:

Yêu cầu từ máy khách HTTP truyền Điểm cuối proxy đến Điểm cuối mục tiêu trên phần phụ trợ để truy cập vào dịch vụ HTTP. Ví dụ về điểm cuối proxy và điểm cuối đích.

Đối với proxy API này:

  • Máy chủ ảo proxy API: "mặc định"
  • Miền do máy chủ lưu trữ ảo xác định: "http://myOrg-prod.apigee.net"
  • Đường dẫn cơ sở proxy: "/v1/Thời tiết"
  • TargetEndpoint được chỉ định theo quy tắc định tuyến: "default"
  • URL đích: "http://Weather.yahooapis.com"

Một ứng dụng gửi yêu cầu GET đến proxy API bằng cách sử dụng thao tác sau Lệnh curl:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Lưu ý rằng yêu cầu này chứa tài nguyên "ForecastRSS" và một tham số truy vấn, w. Edge phân tích cú pháp yêu cầu thành như bên dưới và chỉ định các phần của yêu cầu cho các biến luồng:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

Biến luồng được thiết lập với các giá trị sau:

  • request.verb: "GET"
  • proxy.basepath: "/v1/thời tiết"
  • proxy.pathsuffix: "dự báo RSS"
  • request.querystring: "w=12797282"

Sau đó, TargetEndpoint gửi yêu cầu tới dịch vụ phụ trợ bằng cách sử dụng thông tin từ yêu cầu:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

Lưu ý cách tự động thêm tham số tài nguyên và tham số truy vấn được chỉ định trong yêu cầu trong yêu cầu đến máy chủ phụ trợ. Theo định nghĩa của TargetEndpoint, khi đó yêu cầu có dạng:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

Giống như tham số truy vấn, mọi tiêu đề hoặc tham số biểu mẫu mà bạn đưa vào yêu cầu đến API proxy được chuyển đến máy chủ phụ trợ. Ví dụ: bạn đưa ra yêu cầu bên dưới, trong đó bao gồm tiêu đề:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

Hoặc yêu cầu trong biểu mẫu bên dưới để bao gồm tiêu đề và dữ liệu biểu mẫu:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

Trong cả hai ví dụ, tiêu đề và dữ liệu biểu mẫu được chuyển không thay đổi đến dịch vụ phụ trợ. Chiến lược phát hành đĩa đơn tiêu đề được biểu thị bằng các biến luồng như request.headers.countrequest.headers.names Dữ liệu biểu mẫu được biểu thị bằng các biến luồng như request.formparam.countrequest.formparam.names.

Dữ liệu phản hồi được trả về như thế nào?

Theo mặc định, tất cả dữ liệu mà Edge nhận được từ dịch vụ phụ trợ trong phản hồi sẽ được chuyển không thay đổi đối với ứng dụng đã đưa ra yêu cầu. Như được mô tả ở trên đối với yêu cầu, dữ liệu trả về trong phản hồi có thể truy cập được thông qua các biến luồng trên Edge. Để biết thêm thông tin, hãy xem Tài liệu tham khảo về biến luồng.

Truy cập dữ liệu yêu cầu và phản hồi trong proxy API

Có nhiều trường hợp bạn muốn sửa đổi dữ liệu yêu cầu trước khi gửi dữ liệu đó đến phần phụ trợ máy chủ. Ví dụ:

  • Để xoá thông tin bảo mật mà Edge sử dụng để xác thực yêu cầu. Thông tin đó không mà dịch vụ phụ trợ yêu cầu.
  • Để thêm dữ liệu được gửi đến dịch vụ phụ trợ, chẳng hạn như để theo dõi người dùng hoặc để thu thập số liệu phân tích.
  • Để xử lý yêu cầu theo cách có điều kiện dựa trên dữ liệu về yêu cầu. Ví dụ: proxy API có thể có nhiều TargetEndpoints. TargetEndpoint mà yêu cầu sử dụng được xác định theo yêu cầu . Sau đó, bạn sẽ xoá dữ liệu đó khỏi yêu cầu trước khi gửi đến dịch vụ phụ trợ.

Điều này cũng đúng đối với dữ liệu trong phản hồi. Trong quá trình xử lý phản hồi, proxy API có thể muốn sửa đổi dữ liệu trước khi trả lại cho ứng dụng yêu cầu.

Thông báo yêu cầu quyền truy cập

Bạn có thể dùng các chính sách để truy cập và thay đổi các phần của thông báo yêu cầu. Các phần này bao gồm:

  • Tiêu đề
  • Tham số truy vấn
  • Thông số biểu mẫu
  • Địa chỉ IP nguồn
  • Nội dung thông báo HTTP

Trong một quy trình thông thường, sau khi yêu cầu được xử lý, proxy sẽ gửi giá trị đến mục tiêu.

Các chính sách có thể kiểm tra các biến yêu cầu, sau đó chuyển đổi hoặc từ chối yêu cầu dựa trên nội dung của các biến đó. Các chính sách sẽ chuyển đổi yêu cầu bằng cách đặt các biến thích hợp, chẳng hạn như các biến ví dụ tương ứng với tiêu đề của yêu cầu.

Truy cập vào tin nhắn phản hồi

Khi sử dụng các biến áp dụng cho tin nhắn phản hồi, các chính sách có thể truy cập vào các thành phần của thông báo bao gồm tiêu đề, tham số truy vấn và tham số biểu mẫu, địa chỉ IP nguồn, HTTP nội dung thư, v.v.

Proxy nhận một thông báo phản hồi, sau đó áp dụng cho nó một loạt các chính sách, dựa trên các điều kiện được đánh giá dựa trên phản hồi. Các điều kiện này có thể sửa đổi hoặc biến đổi phản hồi.

Các chính sách có thể kiểm tra các biến phản hồi, sau đó chuyển đổi hoặc từ chối yêu cầu dựa trên nội dung của các biến đó. Các chính sách chuyển đổi phản hồi bằng cách đặt các biến phù hợp, chẳng hạn như các biến ví dụ tương ứng với các tiêu đề phản hồi.

Các chính sách chung để truy cập vào biến luồng

Edge xác định một số chính sách mà bạn có thể sử dụng để xử lý dữ liệu yêu cầu và phản hồi. Các chính sách bao gồm: