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

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

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

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

โดยค่าเริ่มต้น '/' จะรองรับแหล่งข้อมูลเดียวกับ '/**' รวมถึงเส้นทาง ฐานที่กำหนดโดยพร็อกซี 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": "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

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

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