Zarządzanie pakietami produktów API

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Połącz co najmniej 1 usługę API w jednym kontenerze, na którym zarabiasz, nazywanym pakietem produktów API. Więcej informacji znajdziesz w sekcjach poniżej.

Co to jest pakiet produktów API?

Pakiet produktów interfejsu API to zbiór usług interfejsu API przedstawianych deweloperom jako grupa i zwykle powiązanych z co najmniej jednym planem stawek służącym do zarabiania. Możesz utworzyć wiele pakietów produktów API i w każdym z nich uwzględnić co najmniej 1 usługę API. Te same produkty korzystające z interfejsu API możesz umieszczać w różnych pakietach i kojarzyć je z różnymi (lub tymi samymi) planami stawek.

Deweloperzy mogą zarejestrować swoje aplikacje w celu korzystania z pakietu produktów API tylko przez zakup jednego z obowiązujących obecnie abonamentów. Pakiet produktów interfejsu API nie stanie się widoczny dla deweloperów, dopóki nie dodasz i nie opublikujesz (jako publicznego) planu stawek pakietu usług (z datą rozpoczęcia przypadającą na bieżącą lub przyszłą datę) zgodnie z opisem w sekcji Zarządzanie planami stawek. Gdy dodasz i opublikujesz plan stawek, deweloperzy, którzy zalogują się w Twoim portalu dla deweloperów, będą mogli wybrać pakiet usług API i abonament. Możesz też zaakceptować abonament dla dewelopera za pomocą interfejsu API zarządzania. Więcej informacji znajdziesz w artykule Kupowanie opublikowanych planów stawek za pomocą interfejsu API.

Po dodaniu usługi API do pakietu produktów API może być konieczne ustawienie pułapów cenowych dla tej usługi. Musisz to zrobić tylko wtedy, gdy są spełnione wszystkie te warunki:

  • Konfigurujesz plan stawek udziału w przychodach dla usługi API.
  • Deweloperzy obciążają firmy zewnętrzne za korzystanie z zasobów usługi API.
  • Deweloperzy mogą pobierać opłaty minimalne lub maksymalne, o których warto powiadomić deweloperów.

Ceny minimalne i maksymalne są wyświetlane w szczegółach pakietu produktów interfejsu API.

Przeglądanie strony Pakiety produktów

Otwórz stronę Pakiety produktów w sposób opisany poniżej.

Edge

Aby uzyskać dostęp do strony z pakietami produktów API w interfejsie Edge, na pasku nawigacyjnym po lewej stronie wybierz Opublikuj > Zarabianie > Pakiety produktów.

Jak już wspomnieliśmy na poprzednim ilustracji, na stronie Pakiety produktów możesz:

Możesz zarządzać produktami interfejsu API w pakiecie produktów lub usuwać pakiet produktów (jeśli nie zdefiniowano żadnych abonamentów) za pomocą tylko interfejsu API.

Klasyczna wersja Edge (Private Cloud)

Aby uzyskać dostęp do strony pakietów interfejsu API w klasycznym interfejsie użytkownika Edge, na górnym pasku nawigacyjnym wybierz Opublikuj > Pakiety.

Na stronie Pakiety interfejsu API możesz:

  • Wyświetlanie podsumowania wszystkich pakietów API, w tym zawartych w nich produktów API oraz powiązanych planów taryfowych
  • Dodaj pakiet interfejsu API
  • Edytuj pakiet interfejsu API
  • Dodawanie planów stawek i zarządzanie nimi
  • Przełącz ustawienie dostępu do abonamentu (publiczny/prywatny)
  • Filtrowanie listy pakietów

Możesz zarządzać usługami API w pakiecie API lub usuwać pakiet API (jeśli nie zdefiniowano żadnych abonamentów) za pomocą interfejsu API.

Dodawanie pakietu produktów

Aby dodać pakiet produktów API:

  1. Na stronie Pakiety produktów kliknij + Pakiet produktów API.
  2. Wpisz nazwę pakietu produktów API.
  3. W polu Dodaj produkt wpisz nazwę usługi API.

    Podczas wpisywania nazwy usługi API wyświetli się lista produktów API, które zawierają ten ciąg znaków. Kliknij nazwę usługi API, aby dodać ją do pakietu. Powtórz te czynności, aby dodać kolejne usługi API.

  4. Powtórz krok 3, aby dodać kolejne nazwy usług w interfejsie API.
  5. W przypadku każdej dodanej usługi API skonfiguruj zasady rejestrowania transakcji.
  6. Kliknij Zapisz pakiet produktów.

Edytowanie pakietu produktów

Aby edytować pakiet produktów:

  1. Na stronie Pakiety produktów kliknij wiersz pakietu produktów, który chcesz edytować.

    Wyświetli się panel pakietu produktów.

  2. Zmodyfikuj pola pakietu produktów zgodnie z wymaganiami.

    Więcej informacji znajdziesz w artykule Konfigurowanie zasad rejestrowania transakcji.

  3. Kliknij Zaktualizuj pakiet produktów.

Zarządzanie pakietami produktów za pomocą interfejsu API

Poniżej znajdziesz informacje o tym, jak zarządzać pakietami produktów za pomocą interfejsu API.

Tworzenie pakietu produktów API za pomocą interfejsu API

Aby utworzyć pakiet produktów API, wyślij żądanie POST do /organizations/{org_name}/monetization-packages. Gdy przesyłasz prośbę, musisz:

  • Wskaż produkty z interfejsem API, które chcesz uwzględnić w pakiecie API.
  • Podaj nazwę i opis pakietu produktów przez interfejs API.
  • Ustaw wskaźnik stanu pakietu produktów przez interfejs API. Wskaźnik stanu może mieć jedną z tych wartości: CREATED, ACTIVE, INACTIVE. Obecnie podana wartość wskaźnika stanu jest przechowywana w pakiecie usług interfejsu API, ale nie jest używana do żadnego celu.

Opcjonalnie możesz określić organizację.

Listę opcji dostępnych dla interfejsu API znajdziesz w sekcji Właściwości konfiguracji pakietu produktów interfejsu API.

Na przykład:

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "description": "payment messaging package",
     "displayName": "Payment Messaging Package",
     "name": "Payment Messaging Package",
     "organization": { "id": "{org_name}" },
     "product": [
       { "id": "messaging" },
       { "id": "payment" }
     ],
     "status": "CREATED"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

Poniżej znajdziesz przykładową odpowiedź:

{
   "description" : "payment messaging package",
   "displayName" : "Payment Messaging Package",
   "id" : "payment_messaging_package",
   "name" : "Payment Messaging Package",
   "organization" : {
     "id" : "{org_name}",
     "separateInvoiceForFees" : false
   },
   "product" : [ {
     "customAtt1Name" : "user",
     "description" : "Messaging",
     "displayName" : "Messaging",
     "id" : "messaging",
     "name" : "messaging",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }, {
     "customAtt1Name" : "user",
     "description" : "Payment",
     "displayName" : "Payment",
     "id" : "payment",
     "name" : "payment",
     "organization" : {
       "id" : "{org_name}",
       "separateInvoiceForFees" : false
     },
     "status" : "CREATED"
   }],
   "status" : "CREATED"
 }

Zwróć uwagę, że odpowiedź zawiera dodatkowe informacje o usługach API i wszelkich atrybutach niestandardowych określonych dla tych usług. Atrybuty niestandardowe są określane podczas tworzenia usługi przez interfejs API. Atrybuty niestandardowe usługi API można uwzględniać w różnych planach stawek. Jeśli na przykład skonfigurujesz plan arkusza stawek, w którym obciążasz dewelopera za każdą transakcję, możesz ustawić stawkę dla abonamentu na podstawie atrybutu niestandardowego, takiego jak liczba bajtów przesłanych w transakcji.

Zarządzanie produktami w pakiecie API za pomocą interfejsu API

Usługę API możesz dodać do pakietu produktów API lub usunąć ją z niego za pomocą interfejsu API w sposób opisany w poniższych sekcjach.

Dodawanie usługi API do pakietu produktów API

Aby dodać usługę API do pakietu usług API, wyślij żądanie POST do organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, gdzie {org_name} określa nazwę Twojej organizacji, {package_id} określa nazwę pakietu usług API, a {product_id} określa identyfikator usługi API.

Na przykład:

$ curl -H "Accept:application/json" -X POST -d \
'{}'\
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Dodawanie usługi API do pakietu produktów API z planami stawek dla poszczególnych usług interfejsu API

Aby dodać usługę API do pakietu usług API, który ma co najmniej 1 plan stawek dla poszczególnych usług API (arkusz stawek lub udział w przychodach), wyślij żądanie POST do organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, gdzie {org_name} określa nazwę Twojej organizacji, {package_id} określa nazwę pakietu usług API, a {product_id} określa identyfikator usługi API.

Musisz przekazać w treści żądania szczegóły abonamentu dla nowej usługi API. Z wyjątkiem tablicy ratePlanRates wartości planu stawek muszą być zgodne z tymi określonymi dla wszystkich innych usług API. Więcej informacji o atrybutach abonamentów, które można definiować, znajdziesz w artykule o właściwościach konfiguracji abonamentów.

Na przykład:

$ curl -H "Content-Type:application/json" -X POST -d \
'{
    "ratePlan": [ 
        {
            "id": "mypackage_rateplan1",
            "ratePlanDetails": [
                {
                    "currency": {
                        "id": "usd"
                    },
                    "duration": 1,
                    "durationType": "MONTH",
                    "meteringType": "UNIT",
                    "organization" : {
                        "id": "{org_name}",
                    "paymentDueDays": "30",
                    "ratePlanRates": [
                        {
                            "rate": "1.99",
                            "startUnit": "0",
                            "type": "RATECARD"
                        }
                    ],
                    "ratingParameter": "VOLUME",
                    "type": "RATECARD"
                }
            ]
        }
    ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Usuwanie usługi API z pakietu produktów API

Aby usunąć usługę API z pakietu usług API, wyślij żądanie DELETE do organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}, gdzie {org_name} określa nazwę Twojej organizacji, {package_id} określa nazwę pakietu usług API, a {product_id} określa identyfikator usługi API.

Na przykład:

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}/products/{product_id}" \
-u email:password

Wyświetlanie pakietów produktów przy użyciu interfejsu API

Możesz pobrać określony pakiet produktów API lub wszystkie pakiety produktów API w organizacji. Możesz też pobierać pakiety usług interfejsu API, które zawierają transakcje w danym zakresie dat, czyli tylko pakiety, w przypadku których użytkownicy wywołują aplikacje uzyskujące dostęp do interfejsów API w tych pakietach w określonym zakresie dat rozpoczęcia i zakończenia.

Wyświetlanie określonego pakietu produktów interfejsu API: aby pobrać określony pakiet produktów API, wyślij żądanie GET do /organizations/{org_name}/monetization-packages/{package_id}, gdzie {package_id} to identyfikator pakietu produktów API (identyfikator jest zwracany w odpowiedzi podczas tworzenia pakietu produktów API). Na przykład:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment_messaging_package" \
-u email:password

Wyświetlanie wszystkich pakietów produktów interfejsu API: aby pobrać wszystkie pakiety produktów API dla organizacji, wyślij żądanie GET do /organizations/{org_name}/monetization-packages. Na przykład:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages" \
-u email:password

Aby filtrować wyniki, możesz przekazywać te parametry zapytania:

Parametr zapytania Opis
all Flaga określająca, czy należy zwrócić wszystkie pakiety produktów przez interfejs API. Jeśli ma wartość false, liczba pakietów produktów przez interfejs API zwróconych na stronę jest określana przez parametr zapytania size. Wartość domyślna to false.
size Liczba zwróconych pakietów produktów przez interfejs API na stronę. Wartość domyślna to 20. Jeśli parametr zapytania all ma wartość true, jest on ignorowany.
page Numer strony, którą chcesz zwrócić (jeśli treść jest podzielona na strony). Jeśli parametr zapytania all ma wartość true, jest on ignorowany.

Odpowiedź na wyświetlenie wszystkich pakietów usług API w organizacji powinna wyglądać tak (wyświetlana jest tylko część odpowiedzi):

{
  "monetizationPackage" : [ {
    "description" : "payment messaging package",
    "displayName" : "Payment Messaging Package",
    "id" : "payment_messaging_package",
    "name" : "Payment Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Communications",
    "displayName" : "Communications",
    "id" : "communications",
    "name" : "Communications",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Location",
      "displayName" : "Location",
      "id" : "location",
      "name" : "location",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    }, {
      "customAtt1Name" : "user",
      "description" : "Messaging",
      "displayName" : "Messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "Payment",
    "displayName" : "Payment",
    "id" : "payment",
    "name" : "Payment",
    "organization" : {
     ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED"
    } ],
    "status" : "CREATED"
  } ],
  "totalRecords" : 3
}

Wyświetlanie pakietów produktów interfejsu API z transakcjami: aby pobrać pakiety produktów API z transakcjami w danym zakresie dat, wyślij żądanie GET do /organizations/{org_name}/packages-with-transactions. Wysyłając żądanie, musisz jako parametry zapytania określić datę rozpoczęcia i zakończenia zakresu dat. Na przykład to żądanie pobiera pakiety produktów interfejsu API z transakcjami prowadzonymi w sierpniu 2013 r.

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/packages-with-transactions?START_DATE=2013-08-01&END_DATE=2013-08-31" \
-u email:password

Odpowiedź powinna wyglądać mniej więcej tak (widoczna będzie tylko część odpowiedzi):

{
  "monetizationPackage" : [ {
    "description" : "Payment Package",
    "displayName" : "Payment Package",
    "id" : "payment_package",
    "name" : "Payment Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "payment api product",
      "displayName" : "payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  }, {
    "description" : "messaging package",
    "displayName" : "Messaging Package",
    "id" : "messaging_package",
    "name" : "Messaging Package",
    "organization" : {
      ...
    },
    "product" : [ {
      "customAtt1Name" : "user",
      "customAtt2Name" : "response size",
      "customAtt3Name" : "content-length",
      "description" : "messaging api product",
      "displayName" : "messaging",
      "id" : "messaging",
      "name" : "messaging",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "status == 'SUCCESS'"
    } ],
    "status" : "CREATED"
  },
     ...
  } ]
}

Wyświetlanie pakietów produktów API zaakceptowanych przez dewelopera lub firmę za pomocą interfejsu API

Wyświetl pakiety usług API zaakceptowane przez konkretnego dewelopera lub firmę, wysyłając żądanie GET odpowiednio do tych interfejsów API:

  • /organizations/{org_name}/developers/{developer_id}/monetization-packages, gdzie {developer_id} to identyfikator (adres e-mail) dewelopera.
  • /organizations/{org_name}/companies/{company_id}/monetization-packages, gdzie {company_id} to identyfikator firmy.

Po wysłaniu żądania możesz opcjonalnie określić te parametry zapytania:

Parametr zapytania Opis Domyślne
current Flaga określająca, czy chcesz pobrać tylko aktywne pakiety produktów (current=true) czy wszystkie pakiety (current=false). Wszystkie abonamenty w aktywnym pakiecie są uznawane za dostępne. current=false
allAvailable Flaga określająca, czy pobrać wszystkie dostępne pakiety usług (allAvailable=true), czy tylko pakiety usług interfejsu API dostępne specjalnie dla dewelopera lub firmy (allAvailable=false). Wszystkie dostępne odnoszą się do pakietów usług API, które są dostępne dla określonego dewelopera lub firmy w uzupełnieniu innych deweloperów lub firm. Pakiety produktów API dostępne specjalnie dla firmy lub dewelopera zawierają tylko plany stawek dostępne wyłącznie dla tej firmy lub dewelopera. allAvailable=true

Na przykład to żądanie pobiera wszystkie pakiety produktów API zaakceptowane przez określonego dewelopera:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/dev1@myorg.com/monetization-packages" \
-u email:password

To żądanie pobiera tylko aktywne pakiety interfejsu API zaakceptowane przez określoną firmę:

$ curl -H "Accept:application/json" -X GET \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/companies/myCompany/monetization-packages?current=true" \
-u email:password

Usuwanie pakietu produktów API za pomocą interfejsu API

Pakiet produktów interfejsu API możesz usunąć tylko wtedy, gdy nie ma zdefiniowanych żadnych planów stawek.

Aby usunąć pakiet produktów API, który nie ma zdefiniowanych abonamentów, wyślij do organizations/{org_name}/monetization-packages/{package_id} żądanie DELETE, gdzie {org_name} określa nazwę Twojej organizacji, a {package_id} określa nazwę pakietu produktów API.

Na przykład:

$ curl -H "Accept:application/json" -X DELETE \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/{package_id}" \
-u email:password

Właściwości konfiguracji pakietu produktów API dla interfejsu API

Interfejs API ma dostęp do tych opcji konfiguracji pakietów produktów:

Nazwa Opis Domyślne Wymagana?
description

Opis pakietu produktów API.

Nie dotyczy Tak
displayName

Nazwa wyświetlana dla pakietu produktów interfejsu API (na przykład w katalogu pakietów interfejsu API).

Nie dotyczy Tak
name

Nazwa pakietu produktów API.

Nie dotyczy Tak
organization

Organizacja, która zawiera pakiet produktów API.

Nie dotyczy Nie
product

Tablica co najmniej 1 produktu w pakiecie produktów interfejsu API.

Nie dotyczy Nie
status

Wskaźnik stanu pakietu produktów API. Wskaźnik stanu może mieć jedną z tych wartości: CREATED, ACTIVE, INACTIVE.

Nie dotyczy Tak