คุณกำลังดูเอกสารประกอบของ 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.
ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิงของ Create API Product 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 โดยค่าเริ่มต้น ระบบจะแมปเส้นทางทรัพยากรจากตัวแปร คุณสามารถเลือกเส้นทางที่เฉพาะเจาะจง หรือเลือกเส้นทางย่อยทั้งหมดด้วยไวลด์การ์ดก็ได้
ระบบรองรับไวลด์การ์ด (/** และ /*) ไวลด์การ์ดดอกจันคู่ระบุว่ารวม URI ย่อยทั้งหมด
ส่วนดอกจันเดี่ยวระบุว่ารวมเฉพาะ URI ที่อยู่ระดับถัดลงมาเท่านั้น
|
ไม่มี | ไม่ |
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 ) | ไม่มี | ไม่ |
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 ไปยัง API ผลิตภัณฑ์ 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 และกำหนดแอตทริบิวต์การสร้างรายได้บางส่วน
โดยใช้ 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 จะสร้าง "ข้อมูลเข้าสู่ระบบ" (a คู่คีย์ผู้ใช้และข้อมูลลับ) ที่ระบุแอป จากนั้นแอปจะต้องส่งข้อมูลเข้าสู่ระบบเหล่านี้ เป็นส่วนหนึ่งของคำขอทุกรายการที่ส่งไปยังผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป
คำขอต่อไปนี้ใช้ Create Developer App 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
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"
}ดูข้อมูลเพิ่มเติมได้ที่ Get Key Details for a Developer App
เพิ่มผลิตภัณฑ์ API ลงในแอปและคีย์
หากต้องการอัปเดตแอปเพื่อเพิ่มผลิตภัณฑ์ API ใหม่ คุณต้องเพิ่มผลิตภัณฑ์ API ลงในคีย์ของแอป โดยใช้ Add API Product to Key API ดูข้อมูลเพิ่มเติมได้ที่ Add API Product to Key
การเพิ่มผลิตภัณฑ์ 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"
}ดูข้อมูลเพิ่มเติมได้ที่ Approve or Revoke Specific Key of Developer App
อนุมัติผลิตภัณฑ์ API สำหรับคีย์ผู้ใช้
การเชื่อมโยงผลิตภัณฑ์ API กับคีย์ผู้ใช้จะมีสถานะด้วย การเข้าถึง API จะสำเร็จได้ก็ต่อเมื่อคีย์ผู้ใช้ได้รับอนุมัติ และ คีย์ผู้ใช้ต้องได้รับอนุมัติสำหรับ ผลิตภัณฑ์ API ที่เหมาะสม คุณสามารถอนุมัติการเชื่อมโยงคีย์ผู้ใช้กับผลิตภัณฑ์ API ได้โดยใช้ Approve or Revoke API Product for a Key for a Developer App 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 นี้จะไม่แสดงการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่ Approve or Revoke API Product for a Key for a Developer App
เพิกถอนผลิตภัณฑ์ API สำหรับ คีย์ผู้ใช้
มีหลายสาเหตุที่คุณอาจต้องเพิกถอนการเชื่อมโยงคีย์ผู้ใช้กับผลิตภัณฑ์ API คุณอาจต้องนำผลิตภัณฑ์ API ออกจากคีย์ผู้ใช้เนื่องจากนักพัฒนาซอฟต์แวร์ไม่ชำระเงิน ระยะเวลาทดลองใช้หมดอายุ หรือเมื่อมีการเลื่อนระดับแอปจากผลิตภัณฑ์ API หนึ่งไปยังอีกผลิตภัณฑ์ API หนึ่ง
หากต้องการเพิกถอนการเชื่อมโยงคีย์ผู้ใช้กับผลิตภัณฑ์ API ให้ใช้ Approve หรือ Revoke Specific Key of Developer App 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 นี้จะไม่แสดงการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่ Approve or Revoke Specific Key of Developer App
บังคับใช้การตั้งค่าผลิตภัณฑ์ API
หากต้องการบังคับใช้ผลิตภัณฑ์ API คุณต้องแนบนโยบายประเภทใดประเภทหนึ่งต่อไปนี้กับโฟลว์ของพร็อกซี API
- VerifyAPIKey: ใช้ข้อมูลอ้างอิงถึงคีย์ API, ตรวจสอบว่าคีย์ดังกล่าวแสดงแอปที่ถูกต้อง และ ตรงกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่นโยบาย Verify API Keyสำหรับ เพิ่มเติม
- OAuthV1, การดำเนินการ "VerifyAccessToken": ตรวจสอบลายเซ็น, ตรวจสอบโทเค็นเพื่อการเข้าถึง OAuth 1.0a และ "คีย์ผู้ใช้" และจับคู่แอปกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่นโยบาย OAuth v1.0aสำหรับ ข้อมูลเพิ่มเติม
- OAuthV2, การดำเนินการ "VerifyAccessToken": ตรวจสอบว่าโทเค็นเพื่อการเข้าถึง OAuth 2.0 ถูกต้อง, จับคู่โทเค็นกับแอป, ตรวจสอบว่าแอปถูกต้อง แล้วจับคู่แอปกับผลิตภัณฑ์ API ดูข้อมูลเพิ่มเติมได้ที่หน้าแรกของ OAuth home
เมื่อกำหนดค่านโยบายและผลิตภัณฑ์ API แล้ว Apigee Edge จะดำเนินการตามกระบวนการต่อไปนี้
- Apigee Edge ได้รับคำขอและกำหนดเส้นทางคำขอไปยังพร็อกซี API ที่เหมาะสม
- ระบบจะดำเนินการตามนโยบายที่ตรวจสอบคีย์ API หรือโทเค็นเพื่อการเข้าถึง OAuth ที่ ไคลเอ็นต์แสดง
- Edge จะแปลงคีย์ API หรือโทเค็นเพื่อการเข้าถึงเป็นโปรไฟล์แอป
- Edge จะแปลงรายการ (หากมี) ของผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป
- ระบบจะใช้ผลิตภัณฑ์ API รายการแรกที่ตรงกันเพื่อป้อนข้อมูลตัวแปรโควต้า
- หากไม่มีผลิตภัณฑ์ API ใดตรงกับคีย์ API หรือโทเค็นเพื่อการเข้าถึง ระบบจะปฏิเสธคำขอ
- Edge จะบังคับใช้การควบคุมการเข้าถึงตาม URI (สภาพแวดล้อม, พร็อกซี API และเส้นทาง URI) ตามการตั้งค่าผลิตภัณฑ์ API พร้อมกับการตั้งค่าโควต้า