เผยแพร่ API โดยใช้ Edge API

คุณกำลังดูเอกสารประกอบของ 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

ระบบจะแมปเส้นทางทรัพยากรจากตัวแปร proxy.pathsuffix โดยค่าเริ่มต้น คำต่อท้ายเส้นทางพร็อกซีจะกำหนดเป็นส่วนย่อย URI ตามเส้นทางฐาน ProxyEndpoint เช่น ในผลิตภัณฑ์ API ตัวอย่างด้านล่าง องค์ประกอบ apiResources ได้รับการกำหนดเป็น /forecastrss เนื่องจากเส้นทางฐานที่กําหนดสำหรับพร็อกซี API นี้คือ /weather ซึ่งหมายความว่าผลิตภัณฑ์ API นี้อนุญาตเฉพาะคําขอไปยัง /weather/forecastrss เท่านั้น

คุณจะเลือกเส้นทางที่เฉพาะเจาะจงหรือเลือกเส้นทางย่อยทั้งหมดที่มีไวลด์การ์ดก็ได้ รองรับไวลด์การ์ด (/** และ /*) ไวลด์การ์ดที่มีเครื่องหมายดอกจัน 2 ตัวจะบ่งบอกว่ามีการระบุ URI ย่อยทั้งหมด เครื่องหมายดอกจันหนึ่งตัวจะบ่งบอกว่ามี URI ที่เลื่อนลงไป 1 ระดับเท่านั้น

โดยค่าเริ่มต้น '/' จะรองรับทรัพยากรเดียวกันกับ "/**" รวมถึงเส้นทางฐานที่พร็อกซี API กำหนด ตัวอย่างเช่น หากเส้นทางฐานของพร็อกซี API คือ /v1/weatherapikey ผลิตภัณฑ์ API จะรองรับคำขอไปยัง /v1/weatherapikey และคำขอไปยัง URI ย่อยทั้งหมด เช่น /v1/weatherapikey/forecastrss, /v1/weatherapikey/region/CA เป็นต้น โปรดดูจัดการผลิตภัณฑ์ API สำหรับข้อมูลเกี่ยวกับการเปลี่ยนลักษณะการทำงานของค่าเริ่มต้นนี้

ไม่มีข้อมูล ไม่ได้
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

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 จะดำเนินการตามกระบวนการต่อไปนี้

  1. Apigee Edge ได้รับคำขอและส่งไปยังพร็อกซี API ที่เหมาะสมแล้ว
  2. ระบบจะบังคับใช้นโยบายที่ยืนยันคีย์ API หรือโทเค็นเพื่อการเข้าถึง OAuth ที่ไคลเอ็นต์แสดง
  3. Edge แก้ไขคีย์ API หรือโทเค็นเพื่อการเข้าถึงโปรไฟล์แอป
  4. Edge แก้ไขรายการผลิตภัณฑ์ API ที่เชื่อมโยงกับแอป (หากมี)
  5. ระบบจะใช้ผลิตภัณฑ์ API แรกที่ตรงกันเพื่อป้อนข้อมูลตัวแปรโควต้า
  6. หากไม่มีผลิตภัณฑ์ API ที่ตรงกับคีย์ API หรือโทเค็นเพื่อการเข้าถึง ระบบจะปฏิเสธคำขอ
  7. Edge บังคับใช้การควบคุมการเข้าถึงตาม URI (สภาพแวดล้อม พร็อกซี API และเส้นทาง URI) ตามการตั้งค่าผลิตภัณฑ์ API รวมถึงการตั้งค่าโควต้า