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

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

หัวข้อนี้จะอธิบายวิธีใช้ Edge API เพื่อสร้างผลิตภัณฑ์ API สำหรับการเผยแพร่ในพอร์ทัลนักพัฒนาซอฟต์แวร์

สร้างผลิตภัณฑ์ API โดยใช้ API

ผลิตภัณฑ์ API ช่วยให้นักพัฒนาซอฟต์แวร์ลงทะเบียนได้ แอปที่ใช้ API โดยใช้คีย์ API และโทเค็นเพื่อการเข้าถึง OAuth ผลิตภัณฑ์ API ได้รับการออกแบบมาเพื่อ ช่วยให้คุณสามารถ "รวม" ทรัพยากร API แล้วเผยแพร่แพ็กเกจเหล่านั้นไปยังกลุ่ม เช่น คุณอาจต้องเผยแพร่ชุดทรัพยากร API 1 ชุดไปยังพาร์ทเนอร์ ขณะเผยแพร่แพ็กเกจอื่นแก่นักพัฒนาซอฟต์แวร์ภายนอก ผลิตภัณฑ์ API ช่วยให้คุณทำสิ่งต่อไปนี้ได้ ดำเนินการรวมกลุ่มได้ทันทีโดยไม่ต้องเปลี่ยนแปลง API เลย CANNOT TRANSLATE ประโยชน์เพิ่มเติมคือ การเข้าถึงของนักพัฒนาซอฟต์แวร์สามารถ "อัปเกรด" และ "ดาวน์เกรด" โดยไม่ต้องใช้ นักพัฒนาซอฟต์แวร์เพื่อรับคีย์ผู้ใช้ใหม่สำหรับแอปของตน

หากต้องการสร้างผลิตภัณฑ์ API โดยใช้ API ให้ส่งคำขอ POST ไปยัง /organizations/{org_name}/apiproducts โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสร้างข้อมูลอ้างอิง 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 ซึ่งหมายความว่ามีเพียง คำขอไปยัง /weather/forecastrss ได้รับอนุญาตโดยผลิตภัณฑ์ API นี้

คุณจะเลือกเส้นทางเฉพาะหรือจะเลือกเส้นทางย่อยทั้งหมดที่มีไวลด์การ์ดก็ได้ รองรับไวลด์การ์ด (/** และ /*) เครื่องหมายดอกจันคู่เป็นสัญลักษณ์แทน มี URI ย่อยด้วย เครื่องหมายดอกจัน 1 ตัวบ่งชี้ว่า 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 เป็นสาธารณะ ส่วนตัว หรือภายใน เช่น
"attributes": [
{
"name": "การเข้าถึง",
"value": "สาธารณะ"
}
{
"name": "foo",
"value": "foo"
},
{
"name": "บาร์",
"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 มีดังนี้

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 ของ Create developer ดังนี้

$ 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 

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 สำหรับคีย์ดังกล่าว ในฐานะผู้ดูแลระบบ คุณสามารถเรียกข้อมูล โปรไฟล์รหัสผู้ใช้ได้ทุกเมื่อโดยใช้ดูรายละเอียดคีย์ของแอปนักพัฒนาซอฟต์แวร์ 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 ไปยังคีย์ 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 โฟลว์พร็อกซี:

  • VerifyAPIKey: ทำการอ้างอิงคีย์ API ยืนยันว่าคีย์ดังกล่าวแสดงถึงแอปที่ถูกต้อง และ ตรงกับผลิตภัณฑ์ API โปรดดูยืนยันนโยบายคีย์ API สำหรับ และอีกมากมาย
  • OAuthV1, "VerifyAccessToken": ยืนยันลายเซ็น, ตรวจสอบ โทเค็นเพื่อการเข้าถึง OAuth 1.0a และ "คีย์ผู้บริโภค" และจับคู่แอปกับผลิตภัณฑ์ API โปรดดูนโยบาย OAuth v1.0a สำหรับ และอีกมากมาย
  • OAuthV2, "VerifyAccessToken": ยืนยันว่าสิทธิ์เข้าถึง OAuth 2.0 โทเค็นถูกต้อง จับคู่โทเค็นกับแอป ยืนยันว่าแอปถูกต้อง จากนั้นจับคู่ กับผลิตภัณฑ์ API โปรดดู OAuth หน้าแรกเพื่อดูเพิ่มเติม

เมื่อกำหนดค่านโยบายและผลิตภัณฑ์ API แล้ว Apigee จะดำเนินการตามขั้นตอนต่อไปนี้ ขอบ:

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