คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
ส่วนนี้อธิบายวิธีใช้ Edge API เพื่อสร้างผลิตภัณฑ์ API สำหรับเผยแพร่ในพอร์ทัลนักพัฒนาแอป
สร้างผลิตภัณฑ์ API โดยใช้ API
ผลิตภัณฑ์ API ช่วยให้นักพัฒนาแอปสามารถลงทะเบียน แอปที่ใช้ API โดยใช้คีย์ API และโทเค็นเพื่อการเข้าถึง OAuth ผลิตภัณฑ์ API ออกแบบมาเพื่อ ช่วยให้คุณ "จัดกลุ่ม" ทรัพยากร API แล้วเผยแพร่กลุ่มเหล่านั้นไปยังกลุ่มต่างๆ ของ นักพัฒนาแอป เช่น คุณอาจต้องเผยแพร่ชุดทรัพยากร API ชุดหนึ่งไปยังนักพัฒนาแอปพาร์ทเนอร์ ขณะที่เผยแพร่ชุดอื่นไปยังนักพัฒนาแอปภายนอก ผลิตภัณฑ์ API ช่วยให้คุณ ทำการจัดกลุ่มนี้ได้ทันทีโดยไม่ต้องเปลี่ยนแปลง API เอง ข้อดีเพิ่มเติมคือสามารถ "อัปเกรด" และ "ดาวน์เกรด" สิทธิ์เข้าถึงของนักพัฒนาแอปได้โดยไม่ต้อง ให้นักพัฒนาแอปขอคีย์ผู้ใช้ใหม่สำหรับแอปของตน
หากต้องการสร้างผลิตภัณฑ์ API โดยใช้ API ให้ส่งคำขอ POST ไปยัง
/organizations/{org_name}/apiproducts
ดูข้อมูลเพิ่มเติมได้ที่เอกสารอ้างอิง API ของ Create API Product
คำขอต่อไปนี้จะสร้างผลิตภัณฑ์ 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 ผลิตภัณฑ์ โดยค่าเริ่มต้น ระบบจะแมปเส้นทางทรัพยากรจากตัวแปร คุณเลือกเส้นทางที่เฉพาะเจาะจง หรือเลือกเส้นทางย่อยทั้งหมดด้วยไวลด์การ์ดก็ได้
รองรับไวลด์การ์ด (/** และ /*) ไวลด์การ์ดเครื่องหมายดอกจันคู่ระบุว่าระบบรวม URI ย่อยทั้งหมด
ไว้ด้วย เครื่องหมายดอกจันเดี่ยวระบุว่ารวมเฉพาะ URI ที่อยู่ระดับล่างลงไป 1 ระดับ
เท่านั้น |
ไม่มี | ไม่ |
approvalType |
ระบุวิธีอนุมัติคีย์ API เพื่อเข้าถึง API ที่กำหนดโดยผลิตภัณฑ์ API หากตั้งค่าเป็น
manual คีย์ที่สร้างขึ้นสำหรับแอปจะอยู่ในสถานะ "รอดำเนินการ"
คีย์ดังกล่าวจะใช้งานไม่ได้จนกว่าจะได้รับการอนุมัติอย่างชัดแจ้ง หากตั้งค่าเป็น auto,
ระบบจะสร้างคีย์ทั้งหมดในสถานะ "อนุมัติ" และใช้งานได้ทันที (auto มักใช้เพื่อมอบสิทธิ์เข้าถึงผลิตภัณฑ์ API แบบทดลองใช้/ฟรีที่มีโควต้าหรือความสามารถแบบจำกัด
) |
ไม่มี | ใช่ |
attributes |
อาร์เรย์ของแอตทริบิวต์ที่อาจใช้เพื่อขยายโปรไฟล์ผลิตภัณฑ์ API เริ่มต้นด้วย ข้อมูลเมตาเฉพาะลูกค้า
ใช้พร็อพเพอร์ตี้นี้เพื่อระบุระดับการเข้าถึงของผลิตภัณฑ์ API เป็นสาธารณะ ส่วนตัว หรือภายใน เช่น
"attributes": [
{
"name": "access",
"value": "public"
},
{
"name": "foo","value": "foo" }, { "name": "bar", "value": "bar" }
]
|
ไม่มี | ไม่ |
scopes |
รายการขอบเขต OAuth ที่คั่นด้วยคอมมาซึ่งได้รับการตรวจสอบที่รันไทม์ Apigee Edge ตรวจสอบว่าขอบเขตในโทเค็นเพื่อการเข้าถึงที่แสดงตรงกับขอบเขตที่ตั้งค่าไว้ใน API product | ไม่มี | ไม่ |
proxies |
พร็อกซี API ที่มีชื่อซึ่งผลิตภัณฑ์ API นี้เชื่อมโยงอยู่ การระบุพร็อกซีช่วยให้คุณ เชื่อมโยงทรัพยากรในผลิตภัณฑ์ API กับพร็อกซี API ที่เฉพาะเจาะจงได้ ซึ่งจะป้องกันไม่ให้นักพัฒนาซอฟต์แวร์ เข้าถึงทรัพยากรเหล่านั้นผ่านพร็อกซี API อื่นๆ | ไม่มี | ไม่ หากไม่ได้กำหนดไว้ จะต้องกำหนด apiResources อย่างชัดเจน (ดูข้อมูลสำหรับ apiResources ด้านบน) และตั้งค่าตัวแปร flow.resource.name ในนโยบาย AssignMessage |
environments |
สภาพแวดล้อมที่มีชื่อ (เช่น "test" หรือ "prod") ที่ผลิตภัณฑ์ API นี้เชื่อมโยงอยู่ การระบุสภาพแวดล้อมอย่างน้อย 1 รายการจะช่วยให้คุณเชื่อมโยงทรัพยากรที่แสดงในผลิตภัณฑ์ API กับสภาพแวดล้อมที่เฉพาะเจาะจงได้ ซึ่งจะป้องกันไม่ให้นักพัฒนาแอปเข้าถึงทรัพยากรเหล่านั้นผ่านพร็อกซี API ในสภาพแวดล้อมอื่น การตั้งค่านี้ใช้เพื่อป้องกันไม่ให้พร็อกซี API ที่เชื่อมโยงกับทรัพยากรใน "prod" เข้าถึงพร็อกซี API ที่ติดตั้งใช้งานใน "test" ได้ เป็นต้น | ไม่มี | ไม่ได้ หากไม่ได้กำหนดไว้ คุณต้องกำหนด 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 ไปยัง API ของผลิตภัณฑ์ 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 ทั้งหมด
หากต้องการรองรับการสร้างรายได้ คุณต้องกำหนดแอตทริบิวต์ monetization เมื่อสร้างหรือแก้ไขนักพัฒนาแอป นอกจากนี้ คุณยังกำหนดแอตทริบิวต์อื่นๆ ที่กำหนดเอง เพื่อใช้ในการวิเคราะห์ที่กำหนดเอง การบังคับใช้นโยบายที่กำหนดเอง และอื่นๆ ได้ด้วย โดย Apigee Edge จะไม่ตีความแอตทริบิวต์ที่กำหนดเอง เหล่านี้
ตัวอย่างเช่น คำขอต่อไปนี้จะลงทะเบียนโปรไฟล์สำหรับนักพัฒนาแอปที่มีอีเมล
ntesla@theremin.com และกำหนดชุดย่อยของแอตทริบิวต์การสร้างรายได้
โดยใช้ Create developer 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 Create Developer App เพื่อลงทะเบียนแอปสำหรับนักพัฒนาที่คุณสร้างไว้ข้างต้น ซึ่งก็คือ 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
callbackUrl ใช้โดย
การให้สิทธิ์ OAuth บางประเภท (เช่น รหัสการให้สิทธิ์) เพื่อตรวจสอบคำขอเปลี่ยนเส้นทางจากแอป
หากคุณใช้ 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 สำหรับคีย์ ในฐานะผู้ดูแลระบบ คุณสามารถเรียกข้อมูล โปรไฟล์คีย์ผู้ใช้ได้ทุกเมื่อโดยใช้ Get Key Details for a Developer App 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 ลงในคีย์ของแอป โดยใช้ Add API Product to 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 คุณต้องอนุมัติคีย์สำหรับผู้บริโภคอย่างชัดเจน คีย์สามารถ
ได้รับการอนุมัติอย่างชัดเจนโดยใช้ Approve or Revoke Specific Key of Developer App
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 Approve or Revoke Specific Key of Developer App โดยใช้การดำเนินการเพิกถอนกับ คีย์ผู้ใช้ของแอปนักพัฒนาซอฟต์แวร์
$ 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
- VerifyAPIKey: รับการอ้างอิงไปยังคีย์ API ตรวจสอบว่าคีย์ดังกล่าวแสดงถึงแอปที่ถูกต้องและ ตรงกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่นโยบายการยืนยันคีย์ API
- OAuthV1, การดำเนินการ "VerifyAccessToken": ตรวจสอบลายเซ็น ตรวจสอบโทเค็นเพื่อการเข้าถึง OAuth 1.0a และ "คีย์ผู้ใช้" และจับคู่แอปกับผลิตภัณฑ์ API การรองรับ OAuth 1.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 พร้อมกับการตั้งค่าโควต้า