Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Nếu đang dùng thử chú thích Java lần đầu tiên, bạn nên bắt đầu với Cách tạo chú thích Java chú thích.
Mẫu sổ tay nấu ăn này minh hoạ cách tạo một chính sách Javatooltip đơn giản để có thể thực thi mã Java tuỳ chỉnh trong ngữ cảnh của luồng proxy.
Mã mẫu có chức năng gì?
Proxy API trong mẫu này gọi một dịch vụ mục tiêu trả về một phản hồi JSON đơn giản. Chiến lược phát hành đĩa đơn Chính sách Chú thích Java được đặt trong quy trình phản hồi mục tiêu. Mã Java chuyển đổi tiêu đề và nội dung của thư trả lời viết hoa. Đây là một ví dụ đơn giản; tuy nhiên, nó minh hoạ cách để mã Java tuỳ chỉnh hoạt động trong ngữ cảnh proxy API trên Edge.
Dùng thử mẫu
Tải dự án xuống
Để đơn giản hoá, bạn có thể tải dự án này xuống từ kho lưu trữ api-platform-samples của Apigee trên GitHub.
- Tải xuống hoặc sao chép api-platform-samples vào hệ thống của bạn.
- Trong cửa sổ dòng lệnh hoặc trình soạn thảo mã mà bạn chọn, hãy chuyển đến
Dự án
api-platform-samples/doc-samples/java-cookbook
.
Biên dịch mã bằng Maven
Dự án được thiết lập để bạn có thể biên dịch bằng Maven. Nếu bạn muốn sử dụng
javac
, chúng ta sẽ đưa vào một ví dụ cũng như sau ví dụ Maven.
- Đảm bảo rằng bạn đã cài đặt Maven:
mvn -version
- Thực thi tập lệnh
java-cookbook/buildsetup.sh
. Tập lệnh này sẽ cài đặt các phần phụ thuộc JAR bắt buộc trong kho lưu trữ Maven cục bộ của bạn. - cd vào thư mục
java-cookbool/callout
. - Thực thi Maven:
mvn clean package
- Nếu bạn muốn, hãy xác minh rằng tệp JAR
edge-custom-policy-java-cookbook.jar
là đã sao chép vàojava-cookbook/apiproxy/resources/java
. Đây là vị trí bắt buộc cho Tệp JAR mà bạn muốn triển khai bằng proxy.
Biên dịch bằng javac
Nếu muốn sử dụng javac
để biên dịch mã, bạn có thể làm như sau
tiếp theo (từ thư mục java-cookbook
). Đã cung cấp các tệp JAR bắt buộc
cho bạn trong thư mục java-cookbook/lib
.
- đĩa cd sang
api-platform-samples/doc-samples/java-cookbook
. - Hãy đảm bảo bạn có javac trong đường dẫn của mình.
javac -version
- Thực thi lệnh javac sau:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- Sao chép tệp JAR vào thư mục apiproxy/resources/java. Đây là vị trí bắt buộc
cho các tệp JAR mà bạn muốn triển khai bằng proxy.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
Triển khai và gọi proxy
Tập lệnh triển khai được cung cấp trong thư mục ./java-cookbook
. Nhưng trước khi bạn chạy
thiết bị đó, bạn cần thiết lập nhanh.
- CD sang
api-platform-samples/doc-samples/java-cookbook
- Nếu bạn chưa thực hiện, hãy mở tệp
../../setup/setenv.sh
rồi chỉnh sửa mã này được thể hiện bằng thông tin tài khoản Apigee của bạn: tên người dùng (địa chỉ email) được liên kết với tài khoản của bạn), tên tổ chức và miền mà bạn sử dụng để tạo API các cuộc gọi quản lý. Ví dụ: đối với Cloud Cloud, miền làhttps://api.enterprise.apigee.com
; tuy nhiên, miền của bạn có thể khác nếu bạn bằng Edge Private Cloud. - Lưu tệp
setenv.sh
. - Thực thi tập lệnh triển khai:
./deploy.sh
- Nếu triển khai thành công, hãy thực thi tập lệnh gọi:
./invoke.sh
Tập lệnh gọi một lệnh cURL có dạng như sau:
curl http://$org-$env.$api_domain/java-cookbook/json
Phản hồi sẽ có dạng như sau:
< HTTP/1.1 200 OK < Date: Tue, 09 May 2017 20:31:08 GMT < Content-Type: APPLICATION/JSON; CHARSET=UTF-8 < Content-Length: 68 < Connection: keep-alive < Access-Control-Allow-Origin: * < ETag: W/"44-RA5ERT/MMLIK54NVBWBSZG" < X-Powered-By: APIGEE < Server: Apigee Router < * Curl_http_done: called premature == 0 * Connection #0 to host willwitman-test.apigee.net left intact {"FIRSTNAME":"JOHN","LASTNAME":"DOE","CITY":"SAN JOSE","STATE":"CA"}
Luồng proxy
Đây là ảnh chụp công cụ theo dõi cho thấy luồng proxy:
Cấu trúc proxy
Đây là cấu trúc của proxy. Lưu ý rằng tệp này bao gồm tệp JAR trong phần tử
Thư mục apiproxy/resources/java
. Bạn phải có tệp JAR. Chúng tôi cung cấp dịch vụ này cho
mẫu, nhưng nếu bạn đang thực hiện công việc tuỳ chỉnh, bạn cần tự tạo và sao chép nó vào
vị trí. Để biết hướng dẫn về cách biên dịch và triển khai chú thích Java, hãy xem bài viết Cách tạo Java
chú thích.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
Giới thiệu về mã Java
Chính sách Chú thích Java chạy mã Java sau đây, mã này chuyển đổi tiêu đề phản hồi và nội dung phản hồi thành chữ hoa. Xin lưu ý rằng chương trình này sử dụng các gói dành riêng cho Apigee. Các gói này cung cấp các đối tượng và phương thức mà bạn có thể sử dụng để tương tác trực tiếp với luồng proxy. Phương thức cho phép bạn nhận và thiết lập các biến luồng, tiêu đề, nội dung thông báo, v.v.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import java.util.Set; public class ResponseUppercase implements Execution{ public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { Set headers = messageContext.getMessage().getHeaderNames(); for (String header : headers) { String h = messageContext.getMessage().getHeader(header).toUpperCase(); messageContext.getMessage().setHeader(header, h); } String content = messageContext.getMessage().getContent(); messageContext.getMessage().setContent(content.toUpperCase()); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
Kiểm tra proxy mẫu
Chúng tôi để bạn mở proxy và kiểm tra tệp. Dưới đây là Chính sách về chú thích Java. Hãy lưu ý cách tham chiếu đến lớp mà chú thích thực thi và tệp JAR. Tất cả chú thích Java đều tuân theo mẫu này. Xem thêm Chính sách về chú thích Java.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>