คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
ส่วนนี้จะอธิบายวิธีใช้ Edge API เพื่อสร้างผลิตภัณฑ์ API สำหรับการเผยแพร่ในพอร์ทัลสำหรับนักพัฒนาซอฟต์แวร์
สร้างผลิตภัณฑ์ API โดยใช้ API
ผลิตภัณฑ์ API ช่วยให้นักพัฒนาซอฟต์แวร์ลงทะเบียนแอปที่ใช้ API โดยใช้คีย์ API และโทเค็นเพื่อการเข้าถึง OAuth ได้ ผลิตภัณฑ์ API ได้รับการออกแบบมาเพื่อช่วยให้คุณ "รวมกลุ่ม" ทรัพยากร API แล้วเผยแพร่แพ็กเกจเหล่านั้นไปยังกลุ่มนักพัฒนาแอปต่างๆ ได้ เช่น คุณอาจต้องเผยแพร่ทรัพยากร API 1 ชุดไปยังนักพัฒนาซอฟต์แวร์ที่เป็นพาร์ทเนอร์ ขณะที่คุณเผยแพร่แพ็กเกจอื่นไปยังนักพัฒนาซอฟต์แวร์ภายนอก ผลิตภัณฑ์ API ช่วยให้คุณดำเนินการจัดกลุ่มนี้ได้ทันทีโดยไม่ต้องเปลี่ยนแปลง API เลย สิทธิประโยชน์เพิ่มเติมคือสิทธิ์เข้าถึงของนักพัฒนาซอฟต์แวร์สามารถ "อัปเกรด" และ "ดาวน์เกรด" ได้โดยไม่ต้องขอรับคีย์ผู้ใช้ใหม่สำหรับแอป
หากต้องการสร้างผลิตภัณฑ์ API โดยใช้ API ให้ส่งคำขอ POST ไปยัง /organizations/{org_name}/apiproducts
ดูข้อมูลเพิ่มเติมได้ที่สร้างผลิตภัณฑ์ API ข้อมูลอ้างอิงของ API
คำขอต่อไปนี้สร้างผลิตภัณฑ์ API ชื่อ weather_free
ผลิตภัณฑ์ API ดังกล่าวให้สิทธิ์เข้าถึง API ทั้งหมดที่เปิดเผยโดยพร็อกซี API ชื่อ weatherapi
ซึ่งมีการทำให้ใช้งานได้ในสภาพแวดล้อม test
ประเภทการอนุมัติมีการตั้งค่าเป็น auto
เพื่อบ่งชี้ว่าคำขอเข้าถึงใดๆ จะได้รับอนุมัติ
curl -X POST https://api.enterprise.apigee.com/v1/organization/myorg/apiproducts \ -H "Content-Type:application/json" \ -d \ '{ "approvalType": "auto", "displayName": "Free API Product", "name": "weather_free", "proxies": [ "weatherapi" ], "environments": [ "test" ] }' \ -u email:password
ตัวอย่างคำตอบ
{ "apiResources" : [ ], "approvalType" : "auto", "attributes" : [ ], "createdAt" : 1362759663145, "createdBy" : "developer@apigee.com", "displayName" : "Free API Product", "environments" : [ "test" ], "lastModifiedAt" : 1362759663145, "lastModifiedBy" : "developer@apigee.com", "name" : "weather_free", "proxies" : [ "weatherapi" ], "scopes" : [ ] }
ผลิตภัณฑ์ API ที่สร้างขึ้นด้านบนใช้สถานการณ์พื้นฐานที่สุด โดยให้สิทธิ์คำขอไปยังพร็อกซี API ในสภาพแวดล้อม และกำหนดผลิตภัณฑ์ API ที่อนุญาตให้แอปที่ได้รับสิทธิ์เข้าถึงทรัพยากร API ที่เข้าถึงผ่านพร็อกซี API ที่ทำงานในสภาพแวดล้อมการทดสอบ ผลิตภัณฑ์ API แสดงการตั้งค่าการกำหนดค่าเพิ่มเติมที่ช่วยให้คุณปรับแต่งการควบคุมการเข้าถึง API สำหรับกลุ่มนักพัฒนาแอปที่แตกต่างกันได้ ตัวอย่างเช่น คุณสามารถสร้างผลิตภัณฑ์ API 2 รายการที่ให้สิทธิ์เข้าถึงพร็อกซี API ที่ต่างกัน นอกจากนี้ คุณยังสร้างผลิตภัณฑ์ API 2 รายการที่ให้สิทธิ์เข้าถึงพร็อกซี API เดียวกันได้ แต่มีการตั้งค่าโควต้าต่างกัน
การตั้งค่าการกำหนดค่าผลิตภัณฑ์ API
ผลิตภัณฑ์ API แสดงตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อ | คำอธิบาย | ค่าเริ่มต้น | จำเป็นหรือไม่ |
---|---|---|---|
apiResources |
รายการ URI หรือเส้นทางทรัพยากรที่คั่นด้วยคอมมา "รวมกลุ่ม" ไว้ในผลิตภัณฑ์ API ระบบจะแมปเส้นทางทรัพยากรจากตัวแปร คุณจะเลือกเส้นทางที่เฉพาะเจาะจงหรือเลือกเส้นทางย่อยทั้งหมดที่มีไวลด์การ์ดก็ได้
รองรับไวลด์การ์ด (/** และ /*) ไวลด์การ์ดที่มีเครื่องหมายดอกจัน 2 ตัวจะบ่งบอกว่ามีการระบุ URI ย่อยทั้งหมด เครื่องหมายดอกจันหนึ่งตัวจะบ่งบอกว่ามี URI ที่เลื่อนลงไป 1 ระดับเท่านั้น |
ไม่มีข้อมูล | ไม่ได้ |
approvalType |
ระบุวิธีอนุมัติคีย์ API เพื่อเข้าถึง API ที่กำหนดโดยผลิตภัณฑ์ API หากตั้งค่าเป็น manual คีย์ที่สร้างขึ้นสำหรับแอปจะอยู่ในสถานะ "รอดำเนินการ"
คีย์ดังกล่าวจะไม่ทำงานจนกว่าจะได้รับการอนุมัติอย่างชัดเจน หากตั้งค่าเป็น auto ระบบจะสร้างคีย์ทั้งหมดไว้ในสถานะ "อนุมัติ" และทำงานทันที (โดยทั่วไปจะใช้ auto เพื่อให้สิทธิ์เข้าถึงผลิตภัณฑ์ API แบบฟรี/ทดลองใช้ฟรีที่มีโควต้าหรือความสามารถที่จำกัด) |
ไม่มีข้อมูล | มี |
attributes |
อาร์เรย์ของแอตทริบิวต์ที่ใช้เพื่อขยายโปรไฟล์ผลิตภัณฑ์ API เริ่มต้นได้ด้วยข้อมูลเมตาเฉพาะของลูกค้า
ใช้พร็อพเพอร์ตี้นี้เพื่อระบุระดับการเข้าถึงของผลิตภัณฑ์ API เป็นสาธารณะ ส่วนตัว หรือภายใน เช่น
"แอตทริบิวต์": [
{
"name": "เข้าถึง",
"value": "สาธารณะ"
}
{
"name": "foo","value": "foo" }, { "name": "bar", "value": "bar" }
]
|
ไม่มีข้อมูล | ไม่ได้ |
scopes |
รายการขอบเขต OAuth ที่คั่นด้วยคอมมาและได้รับการตรวจสอบขณะรันไทม์ (Apigee Edge จะตรวจสอบว่าขอบเขตในโทเค็นเพื่อการเข้าถึงที่แสดงตรงกับขอบเขตที่ตั้งค่าไว้ในผลิตภัณฑ์ API) | ไม่มีข้อมูล | ไม่ได้ |
proxies |
พร็อกซี API ที่มีชื่อที่ผลิตภัณฑ์ API เชื่อมโยงอยู่ เมื่อระบุพร็อกซี คุณจะเชื่อมโยงทรัพยากรในผลิตภัณฑ์ API กับพร็อกซี API ที่เฉพาะเจาะจงได้ ซึ่งจะป้องกันไม่ให้นักพัฒนาซอฟต์แวร์เข้าถึงทรัพยากรเหล่านั้นผ่านพร็อกซี API อื่นๆ | ไม่มีข้อมูล | ไม่ได้ หากไม่ได้กำหนด คุณจะต้องกำหนด apiResources อย่างชัดแจ้ง (ดูข้อมูลของ apiResources ด้านบน) และกำหนดให้ตัวแปร flow.resource.name ตั้งค่าในนโยบาย AssignMessage |
environments |
สภาพแวดล้อมที่มีชื่อ (เช่น "test" หรือ "prod") ที่ผูกกับผลิตภัณฑ์ API นี้ การระบุสภาพแวดล้อมอย่างน้อย 1 รายการช่วยให้คุณเชื่อมโยงทรัพยากรที่แสดงในผลิตภัณฑ์ API กับสภาพแวดล้อมที่เฉพาะเจาะจงได้ ซึ่งจะป้องกันไม่ให้นักพัฒนาซอฟต์แวร์เข้าถึงทรัพยากรเหล่านั้นผ่านพร็อกซี API ในสภาพแวดล้อมอื่นได้ ตัวอย่างเช่น การตั้งค่านี้ใช้เพื่อป้องกันไม่ให้พร็อกซี API ที่ทำให้ใช้งานได้ใน "test" เข้าถึงทรัพยากรที่เชื่อมโยงกับพร็อกซี API ใน "prod" | ไม่มีข้อมูล | ไม่ได้ หากไม่ได้กำหนด คุณจะต้องกำหนด apiResources อย่างชัดเจนและ
ตั้งค่าตัวแปร flow.resource.name ในนโยบาย AssignMessage |
quota |
จำนวนคำขอที่อนุญาตต่อแอปในระยะเวลาที่ระบุ | ไม่มีข้อมูล | ไม่ได้ |
quotaInterval |
จำนวนหน่วยเวลาที่เกินโควต้าได้รับการประเมิน | ไม่มีข้อมูล | ไม่ได้ |
quotaTimeUnit |
หน่วยเวลา (นาที ชั่วโมง วัน หรือเดือน) ที่เกินโควต้า | ไม่มีข้อมูล | ไม่ได้ |
ต่อไปนี้เป็นตัวอย่างโดยละเอียดยิ่งขึ้นสำหรับการสร้างผลิตภัณฑ์ API
curl -X POST https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts \ -H "Content-Type:application/json" -d \ '{ "apiResources": [ "/forecastrss" ], "approvalType": "auto", "attributes": [ {"name": "access", "value": "public"} ], "description": "Free API Product", "displayName": "Free API Product", "name": "weather_free", "scopes": [], "proxies": [ "weatherapi" ], "environments": [ "test" ], "quota": "10", "quotaInterval": "2", "quotaTimeUnit": "hour" }' \ -u email:password
ตัวอย่างการตอบกลับ
{ "apiResources" : [ "/forecastrss" ], "approvalType" : "auto", "attributes" : [ { "name" : "access", "value" : "public" }, "createdAt" : 1344454200828, "createdBy" : "admin@apigee.com", "description" : "Free API Product", "displayName" : "Free API Product", "lastModifiedAt" : 1344454200828, "lastModifiedBy" : "admin@apigee.com", "name" : "weather_free", "scopes" : [ ], "proxies": [ {'weatherapi'} ], "environments": [ {'test'} ], "quota": "10", "quotaInterval": "1", "quotaTimeUnit": "hour"}' }
เกี่ยวกับขอบเขต
ขอบเขตคือแนวคิดที่ดึงมาจาก OAuth และแมปกับแนวคิด "สิทธิ์" อย่างคร่าวๆ ใน Apigee Edge คุณไม่จำเป็นต้องมีขอบเขตก็ได้ คุณใช้ขอบเขตเพื่อให้สิทธิ์ที่ละเอียดยิ่งขึ้นได้ คีย์ผู้ใช้ทุกคีย์ที่ออกให้แอปจะเชื่อมโยงกับ "ขอบเขตหลัก" ขอบเขตหลักคือชุดของขอบเขตทั้งหมดในผลิตภัณฑ์ API ทั้งหมดสำหรับแอปนี้ที่ได้รับอนุมัติแล้ว สำหรับแอปที่ได้รับอนุมัติให้ใช้ผลิตภัณฑ์ API หลายรายการ ขอบเขตหลักคือการรวมขอบเขตทั้งหมดที่กำหนดไว้ในผลิตภัณฑ์ API ที่มีการอนุมัติคีย์ผู้ใช้แล้ว
ดูผลิตภัณฑ์ API
หากต้องการดูผลิตภัณฑ์ API ที่สร้างขึ้นสำหรับองค์กรโดยใช้ API โปรดดูหัวข้อต่อไปนี้
- ดูผลิตภัณฑ์ API (สร้างรายได้)
โดยค่าเริ่มต้น ระบบจะแสดงเฉพาะผลิตภัณฑ์ API ที่สร้างรายได้ (ผลิตภัณฑ์ API ที่มีแพ็กเกจราคาที่เผยแพร่อย่างน้อย 1 รายการ) หากต้องการแสดงผลิตภัณฑ์ API ทั้งหมด ให้ตั้งค่าพารามิเตอร์การค้นหา
monetized
เป็นfalse
การดำเนินการนี้เทียบได้กับการส่งคำขอ GET ไปยัง List API ผลิตภัณฑ์ที่ไม่สร้างรายได้:https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts?expand=true
- ดูผลิตภัณฑ์ API (ไม่สร้างรายได้)
- ดูผลิตภัณฑ์ API ที่มีสิทธิ์สำหรับนักพัฒนาแอป
- ดูผลิตภัณฑ์ API ที่มีสิทธิ์สำหรับบริษัท
ตัวอย่างต่อไปนี้เป็นตัวอย่างวิธีดูผลิตภัณฑ์ API โดยใช้ API
curl -X GET "https://ext.apiexchange.org/v1/mint/organizations/{org_name}/products?monetized=true" \ -H "Accept:application/json" \ -u email:password
คําตอบควรมีลักษณะดังนี้ (แสดงเฉพาะบางส่วนของคําตอบ)
{ "product" : [ { "customAtt1Name" : "user", "customAtt2Name" : "response size", "customAtt3Name" : "content-length", "description" : "payment api product", "displayName" : "payment", "id" : "payment", "name" : "payment", "organization" : { ... }, "pricePoints" : [ ], "status" : "CREATED", "transactionSuccessCriteria" : "status == 'SUCCESS'" }, { "customAtt1Name" : "user", "customAtt2Name" : "response size", "customAtt3Name" : "content-length", "description" : "messaging api product", "displayName" : "messaging", "id" : "messaging", "name" : "messaging", "organization" : ... }, "pricePoints" : [ ], "status" : "CREATED", "transactionSuccessCriteria" : "status == 'SUCCESS'" } ], "totalRecords" : 2 }
ลงทะเบียนนักพัฒนาซอฟต์แวร์โดยใช้ API
แอปทั้งหมดเป็นของนักพัฒนาซอฟต์แวร์หรือบริษัท ดังนั้นหากต้องการสร้างแอป ก่อนอื่นคุณต้องลงทะเบียนนักพัฒนาแอปหรือบริษัท
นักพัฒนาซอฟต์แวร์ลงทะเบียนในองค์กรด้วยการสร้างโปรไฟล์ โปรดทราบว่าระบบจะใช้อีเมลของนักพัฒนาซอฟต์แวร์ที่รวมอยู่ในโปรไฟล์เป็นคีย์ที่ไม่ซ้ำกันสำหรับนักพัฒนาแอปทั่วทั้ง Apigee Edge
คุณต้องกำหนดแอตทริบิวต์การสร้างรายได้เมื่อสร้างหรือแก้ไขนักพัฒนาซอฟต์แวร์เพื่อรองรับการสร้างรายได้ คุณยังกําหนดแอตทริบิวต์ที่กําหนดเองอื่นๆ เพื่อใช้ในข้อมูลวิเคราะห์ที่กําหนดเอง การบังคับใช้นโยบายที่กําหนดเอง และอื่นๆ ได้ด้วย โดย Apigee Edge จะไม่ตีความแอตทริบิวต์ที่กําหนดเองเหล่านี้
ตัวอย่างเช่น คำขอต่อไปนี้จะบันทึกโปรไฟล์สำหรับนักพัฒนาแอปที่มีอีเมล ntesla@theremin.com
และกำหนดแอตทริบิวต์การสร้างรายได้บางส่วนโดยใช้ สร้างนักพัฒนาซอฟต์แวร์ API
$ curl -H "Content-type:application/json" -X POST -d \ '{"email" : "ntesla@theremin.com", "firstName" : "Nikola", "lastName" : "Tesla", "userName" : "theremin", "attributes" : [ { "name" : "project_type", "value" : "public" }, { "name": "MINT_BILLING_TYPE", "value": "POSTPAID" }, { "name": "MINT_DEVELOPER_ADDRESS", "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}" }, { "name": "MINT_DEVELOPER_TYPE", "value": "TRUSTED" }, { "name": "MINT_HAS_SELF_BILLING, "value": "FALSE" }, { "name" : "MINT_SUPPORTED_CURRENCY", "value" : "usd" } ] }' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers \ -u email:password
ตัวอย่างการตอบกลับ
{ "email" : "ntesla@theremin.com", "firstName" : "Nikola", "lastName" : "Tesla", "userName" : "theremin", "organizationName" : "{org_name}", "status" : "active", "attributes" : [ { "name" : "project_type", "value" : "public" }, { "name": "MINT_BILLING_TYPE", "value": "POSTPAID" }, { "name": "MINT_DEVELOPER_ADDRESS", "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}" }, { "name": "MINT_DEVELOPER_TYPE", "value": "TRUSTED" }, { "name": "MINT_HAS_SELF_BILLING, "value": "FALSE" }, { "name" : "MINT_SUPPORTED_CURRENCY", "value" : "usd" } ], "createdAt" : 1343189787717, "createdBy" : "admin@apigee.com", "lastModifiedAt" : 1343189787717, "lastModifiedBy" : "admin@apigee.com" }
ลงทะเบียนแอปของนักพัฒนาซอฟต์แวร์โดยใช้ API
ทุกแอปที่ลงทะเบียนใน Apigee Edge จะเชื่อมโยงกับนักพัฒนาซอฟต์แวร์และผลิตภัณฑ์ API เมื่อมีการลงทะเบียนแอปในนามของนักพัฒนาแอป Apigee Edge จะสร้าง "ข้อมูลเข้าสู่ระบบ" (คู่คีย์ผู้บริโภคและคู่ข้อมูลลับ) ที่ระบุแอป จากนั้นแอปต้องส่งข้อมูลเข้าสู่ระบบเหล่านี้เป็นส่วนหนึ่งของคำขอไปยังผลิตภัณฑ์ API ที่เชื่อมโยงกับแอปทุกครั้ง
คำขอต่อไปนี้ใช้ API สร้างแอปสำหรับนักพัฒนาซอฟต์แวร์ในการลงทะเบียนแอปสำหรับนักพัฒนาซอฟต์แวร์ที่คุณสร้างไว้ข้างต้น: ntesla@theremin.com เมื่อลงทะเบียนแอป คุณจะกำหนดชื่อแอป, callbackUrl และรายชื่อผลิตภัณฑ์ API อย่างน้อย 1 รายการ$ curl -H "Content-type:application/json" -X POST -d \ '{ "apiProducts": [ "weather_free"], "callbackUrl" : "login.weatherapp.com", "keyExpiresIn" : "2630000000", "name" : "weatherapp"}' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps \ -u email:password
การให้สิทธิ์ OAuth บางประเภท (เช่น รหัสการให้สิทธิ์) ใช้ callbackUrl เพื่อตรวจสอบคำขอเปลี่ยนเส้นทางจากแอป หากใช้ OAuth จะต้องตั้งค่านี้เป็นค่าเดียวกับ redirect_uri
ที่ใช้ในการสร้างคำขอ OAuth
แอตทริบิวต์ keyExpiresIn
จะระบุอายุการใช้งานของคีย์ผู้ใช้
ที่จะสร้างขึ้นสำหรับแอปของนักพัฒนาซอฟต์แวร์เป็นมิลลิวินาที ค่าเริ่มต้น -1 แสดงถึง
ระยะเวลาที่ใช้งานได้ไม่รู้จบ
ตัวอย่างการตอบกลับ
{ "appId": "5760d130-528f-4388-8c6f-65a6b3042bd1", "attributes": [ { "name": "DisplayName", "value": "Test Key Expires" }, { "name": "Notes", "value": "Just testing this attribute" } ], "createdAt": 1421770824390, "createdBy": "wwitman@apigee.com", "credentials": [ { "apiProducts": [ { "apiproduct": "ProductNoResources", "status": "approved" } ], "attributes": [], "consumerKey": "jcAFDcfwImkJ19A5gTsZRzfBItlqohBt", "consumerSecret": "AX7lGGIRJs6s8J8y", "expiresAt": 1424400824401, "issuedAt": 1421770824401, "scopes": [], "status": "approved" } ], "developerId": "e4Oy8ddTo3p1BFhs", "lastModifiedAt": 1421770824390, "lastModifiedBy": "wwitman@apigee.com", "name": "TestKeyExpires", "scopes": [], "status": "approved" }
จัดการคีย์ผู้ใช้สำหรับแอปโดยใช้ API
รับคีย์ผู้ใช้ (คีย์ API) สำหรับแอป
ข้อมูลเข้าสู่ระบบสำหรับแอป (ผลิตภัณฑ์ API, คีย์ของผู้บริโภค และข้อมูลลับ) จะแสดงเป็นส่วนหนึ่งของโปรไฟล์แอป ผู้ดูแลระบบขององค์กรสามารถเรียกรหัสผู้ใช้ได้ทุกเมื่อ
โปรไฟล์แอปแสดงค่าของคีย์และข้อมูลลับของผู้ใช้ สถานะของคีย์ผู้ใช้ รวมถึงการเชื่อมโยงผลิตภัณฑ์ API สำหรับคีย์นั้น ในฐานะผู้ดูแลระบบ คุณสามารถเรียกข้อมูลโปรไฟล์คีย์ผู้ใช้ได้ทุกเมื่อโดยใช้รับรายละเอียดคีย์สำหรับ API ของแอปนักพัฒนาซอฟต์แวร์ ดังนี้
$ curl -X GET -H "Accept: application/json" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \ -u email:password
ตัวอย่างการตอบกลับ
{ "apiProducts" : [ { "apiproduct" : "weather_free", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret" : "1eluIIdWG3JGDjE0", "status" : "approved" }
ดูข้อมูลเพิ่มเติมที่ รับรายละเอียดสำคัญสำหรับแอปนักพัฒนาซอฟต์แวร์
เพิ่มผลิตภัณฑ์ API ลงในแอปและคีย์
หากต้องการอัปเดตแอปเพื่อเพิ่มผลิตภัณฑ์ API ใหม่ คุณต้องเพิ่มผลิตภัณฑ์ API ลงในคีย์ของแอปโดยใช้เพิ่มผลิตภัณฑ์ API ไปยัง Key API ดูข้อมูลเพิ่มเติมได้ที่ เพิ่มผลิตภัณฑ์ API ลงในคีย์
การเพิ่มผลิตภัณฑ์ API ลงในคีย์แอปจะทำให้แอปที่มีคีย์เข้าถึงทรัพยากร API ที่รวมอยู่ในผลิตภัณฑ์ API ได้ การเรียกเมธอดต่อไปนี้จะเพิ่มผลิตภัณฑ์ API ใหม่ลงใน แอป:
$ curl -H "Content-type:application/json" -X POST -d \ '{ "apiProducts": [ "newAPIProduct"] }' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \ -u email:password
ตัวอย่างคำตอบ:
{ "apiProducts": [ { "apiproduct": "weather_free", "status": "approved" }, { "apiproduct": "newAPIProduct", "status": "approved" } ], "attributes": [], "consumerKey": "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret": "1eluIIdWG3JGDjE0", "expiresAt": -1, "issuedAt": 1411491156464, "scopes": [], "status": "approved" }
อนุมัติคีย์ผู้ใช้
การตั้งค่าประเภทการอนุมัติเป็นด้วยตนเองช่วยให้คุณควบคุมได้ว่านักพัฒนาแอปรายใดจะเข้าถึงทรัพยากรที่ปกป้องโดยผลิตภัณฑ์ API ได้ เมื่อผลิตภัณฑ์ API มีการตั้งค่าการอนุมัติคีย์เป็น manual
คีย์ผู้บริโภคต้องได้รับการอนุมัติอย่างชัดเจน คีย์สามารถได้รับอนุมัติอย่างชัดแจ้งโดยใช้ API อนุมัติหรือเพิกถอนคีย์เฉพาะของแอปนักพัฒนาซอฟต์แวร์ ดังนี้
$ curl -X POST -H "Content-type:appilcation/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J?"action=approve" \ -u email:password
ตัวอย่างการตอบกลับ
{ "apiProducts" : [ { "apiproduct" : "weather_free", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret" : "1eluIIdWG3JGDjE0", "status" : "approved" }
ดูข้อมูลเพิ่มเติมได้ที่ อนุมัติหรือเพิกถอนคีย์เฉพาะของแอปนักพัฒนาซอฟต์แวร์
อนุมัติผลิตภัณฑ์ API สำหรับคีย์ผู้ใช้
การเชื่อมโยงของผลิตภัณฑ์ API กับคีย์ผู้บริโภคก็มีสถานะเช่นกัน หากต้องการให้การเข้าถึง API สำเร็จ คีย์ผู้บริโภคต้องได้รับอนุมัติ และคีย์ผู้บริโภคต้องได้รับอนุมัติสำหรับผลิตภัณฑ์ API ที่เหมาะสม การเชื่อมโยงของคีย์ผู้บริโภคกับผลิตภัณฑ์ API สามารถอนุมัติได้โดยใช้ API อนุมัติหรือเพิกถอนผลิตภัณฑ์ API สำหรับคีย์สำหรับแอปนักพัฒนาซอฟต์แวร์:
$ curl -X POST -H "Content-type:application/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=approve" \ -u email:password
คำสั่ง cURL นี้ไม่แสดงการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่ อนุมัติหรือเพิกถอนผลิตภัณฑ์ API สำหรับคีย์สำหรับแอปนักพัฒนาซอฟต์แวร์
เพิกถอนผลิตภัณฑ์ API สำหรับคีย์ของผู้บริโภค
มีเหตุผลหลายประการที่คุณอาจจำเป็นต้องเพิกถอนการเชื่อมโยงของคีย์ผู้บริโภคกับผลิตภัณฑ์ API คุณอาจต้องนำผลิตภัณฑ์ API ออกจากคีย์ผู้บริโภคเนื่องจากนักพัฒนาซอฟต์แวร์ไม่ได้ชำระเงิน ระยะทดลองที่หมดอายุ หรือเมื่อมีการโปรโมตแอปจากผลิตภัณฑ์ API หนึ่งไปยังอีกผลิตภัณฑ์หนึ่ง
หากต้องการเพิกถอนการเชื่อมโยงคีย์ผู้บริโภคกับผลิตภัณฑ์ API ให้ใช้ API อนุมัติหรือเพิกถอนคีย์เฉพาะของแอปนักพัฒนาซอฟต์แวร์ โดยใช้การดำเนินการเพิกถอนคีย์ผู้ใช้ของแอปที่พัฒนา
$ curl -X POST -H "Content-type:application/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=revoke" \ -u email:password
คำสั่ง cURL นี้ไม่แสดงการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่ อนุมัติหรือเพิกถอนคีย์เฉพาะของแอปนักพัฒนาซอฟต์แวร์
บังคับใช้การตั้งค่าผลิตภัณฑ์ API
หากต้องการบังคับใช้ผลิตภัณฑ์ API คุณต้องแนบนโยบายประเภทใดประเภทหนึ่งต่อไปนี้กับโฟลว์พร็อกซี API
- โปรดยืนยันคีย์ API: อ้างอิงคีย์ API ยืนยันว่าคีย์ดังกล่าวแสดงถึงแอปที่ถูกต้อง และตรงกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ในยืนยันนโยบายคีย์ API
- OAuthV1, การดำเนินการ "VerifyAccessToken": ยืนยันลายเซ็น ตรวจสอบโทเค็นเพื่อการเข้าถึง OAuth 1.0a และ "คีย์ผู้ใช้" และจับคู่แอปกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่นโยบาย OAuth v1.0a
- OAuthV2 การดำเนินการ “VerifyAccessToken”: จะยืนยันว่าโทเค็นเพื่อการเข้าถึง OAuth 2.0 ถูกต้อง จับคู่โทเค็นกับแอป ยืนยันว่าแอปถูกต้อง จากนั้นจึงจับคู่แอปกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่หน้าแรกของ OAuth
เมื่อกำหนดค่านโยบายและผลิตภัณฑ์ API แล้ว Apigee Edge จะดำเนินการตามกระบวนการต่อไปนี้
- Apigee Edge ได้รับคำขอและส่งไปยังพร็อกซี API ที่เหมาะสมแล้ว
- ระบบจะบังคับใช้นโยบายที่ยืนยันคีย์ API หรือโทเค็นเพื่อการเข้าถึง OAuth ที่ไคลเอ็นต์แสดง
- Edge แก้ไขคีย์ API หรือโทเค็นเพื่อการเข้าถึงโปรไฟล์แอป
- Edge แก้ไขรายการผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป (หากมี)
- ระบบจะใช้ผลิตภัณฑ์ API แรกที่ตรงกันเพื่อป้อนข้อมูลตัวแปรโควต้า
- หากไม่มีผลิตภัณฑ์ API ที่ตรงกับคีย์ API หรือโทเค็นเพื่อการเข้าถึง ระบบจะปฏิเสธคำขอ
- Edge บังคับใช้การควบคุมการเข้าถึงตาม URI (สภาพแวดล้อม พร็อกซี API และเส้นทาง URI) ตามการตั้งค่าผลิตภัณฑ์ API รวมถึงการตั้งค่าโควต้า