درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
اگر برای اولینبار میخواهید «نوشتار راهنمای Java» را امتحان کنید، توصیه میکنیم با نحوه ساختن نوشتار راهنمای Java شروع کنید.
این نمونه دستورالعمل نشان میدهد که چگونه یک خطمشی JavaCallout ساده ایجاد کنید که کد سفارشی Java را در زمینه جریان پراکسی اجرا میکند.
کد نمونه چه کاری انجام میدهد؟
کارگزار API در این نمونه سرویس هدفی را فراخوانی میکند که پاسخ JSON سادهای برمیگرداند. خطمشی «تماس با Java» در جریان پاسخ هدف قرار میگیرد. کد Java سرصفحهها و محتوای پاسخ را به حروف بزرگ تبدیل میکند. این یک مثال ساده است؛ بااینحال، نشان میدهد که چگونه کد سفارشی Java را در بافت یک پراکسی API در Edge اجرا کنید.
امتحان کردن نمونه
بارگیری پروژه
برای سادهتر کردن کار، میتوانید این پروژه را از مخزن api-platform-samples در GitHub بارگیری کنید.
- api-platform-samples را در سیستم خود بارگیری یا شبیهسازی کنید.
- در پایانه یا ویرایشگر کد انتخابیتان، به
api-platform-samples/doc-samples/java-cookbookپروژه بروید.
ترجمه کردن کد با Maven
پروژه طوری تنظیم شده است که بتوانید با Maven آن را گردآوری کنید. اگر میخواهید از
javac استفاده کنید، ما نیز نمونهای را پساز نمونه Maven اضافه خواهیم کرد.
- مطمئن شوید که Maven را نصب کردهاید:
mvn -version
- دستورگان
java-cookbook/buildsetup.shرا اجرا کن. این دستورگان وابستگیهای موردنیاز JAR را در مخزن محلی Maven نصب میکند. - به فهرست راهنمای
java-cookbool/calloutبروید. - اجرای Maven:
mvn clean package
- درصورت تمایل، تأیید کنید که فایل JAR
edge-custom-policy-java-cookbook.jarبهjava-cookbook/apiproxy/resources/javaکپی شده است. این مکان موردنیاز برای فایلهای JAR است که میخواهید با پراکسی مستقر کنید.
ترجمه کردن با javac
اگر میخواهید از javac برای گردآوری کد استفاده کنید، میتوانید کاری مشابه با
مورد زیر انجام دهید (از دایرکتوری java-cookbook). فایلهای JAR موردنیاز در
دایرکتوری java-cookbook/lib برای شما ارائه شده است.
- به
api-platform-samples/doc-samples/java-cookbookبروید. - مطمئن شوید که javac در مسیر شما باشد.
javac -version
- فرمان javac زیر را اجرا کنید:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/ResponseUppercase.java
- فایل JAR را در دایرکتوری apiproxy/resources/java کپی کنید. این مکان موردنیاز برای فایلهای JAR است که میخواهید با پراکسی مستقر کنید.
cp com/apigeesample/ResponseUppercase.class apiproxy/resources/java
استقرار و فراخوانی پراکسی
یک متن استقرار در دایرکتوری ./java-cookbook ارائه شده است. اما قبلاز اینکه آن را اجرا کنید، باید راهاندازی سریعی انجام دهید.
- رفتن به
api-platform-samples/doc-samples/java-cookbook - اگر قبلاً این کار را نکردهاید، فایل
../../setup/setenv.shرا باز کنید و آن را همانطور که با اطلاعات حساب Apigee شما نشان داده شده است ویرایش کنید: نام کاربری شما (آدرس ایمیل منسوب به حسابتان)، نام سازمانتان، و دامنهای که برای برقراری تماسهای مدیریت API استفاده میکنید. برای مثال، برای ابر Edge، دامنهhttps://api.enterprise.apigee.comاست؛ بااینحال، اگر از «ابر خصوصی Edge» استفاده میکنید، دامنه شما ممکن است متفاوت باشد. - فایل
setenv.shرا ذخیره کنید. - اجرای دستورگان استقرار:
./deploy.sh
- اگر استقرار موفقیتآمیز بود، دستورگان فراخوانی را اجرا کنید:
./invoke.sh
نوشتار فراخوانی فرمان cURL را فرا میخواند که به این شکل است:
curl http://$org-$env.$api_domain/java-cookbook/json
پاسخ چیزی شبیه به این است:
< 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"}
جریان پراکسی
این تصویری از ابزار ردیابی است که جریان پراکسی را نشان میدهد:

ساختار پراکسی
این ساختار پراکسی است. توجه داشته باشید که این شامل فایل JAR در
apiproxy/resources/java فهرست راهنما است. JAR الزامی است. ما آن را برای نمونه ارائه میدهیم، اما اگر کار سفارشی انجام میدهید، باید آن را خودتان بسازید و در این مکان کپی کنید. برای راهنمایی درباره گردآوری و استقرار پیامواره Java، به نحوه ایجاد پیامواره Java مراجعه کنید.
java-cookbook apiproxy java-cookbook.xml policies responseUppercase.xml proxies default.xml resources java ResponseUppercase.jar targets default.xml
درباره کد Java
خطمشی «پیامواره Java» کد Java زیر را اجرا میکند که سرصفحههای پاسخ و بدنه پاسخ را به حروف بزرگ تبدیل میکند. توجه داشته باشید که این برنامه از بستههای مختص Apigee استفاده میکند. این بستهها اشیا و روشهایی را ارائه میدهند که میتوانید از آنها برای تعامل مستقیم با جریان پراکسی استفاده کنید. روشهایی وجود دارد که به شما امکان میدهد متغیرهای جاری، سرایندها، محتوای پیام، و غیره را دریافت و تنظیم کنید.
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; } } }
بررسی کردن پراکسی نمونه
باز کردن پراکسی و بررسی فایلها را به خودتان واگذار میکنیم. خطمشی «پیامواره Java» در اینجا آمده است. توجه کنید که چگونه به کلاسی که نوشتهواره اجرا میکند و فایل JAR ارجاع میدهد. همه خطمشیهای «پیامواره Java» از این الگو پیروی میکنند. خطمشی «پیامواره تماس Java» را نیز ببینید.
<JavaCallout name="responseUppercase"> <ClassName>com.apigeesample.ResponseUppercase</ClassName> <ResourceURL>java://ResponseUppercase.jar</ResourceURL> </JavaCallout>