/
API Management API
API Management API
The API Management API builds upon the Administration API
REST API
There are a number of different REST APIs available for API Management and Administration - they are both exposed on an internal API Gateway - in the default Ceptor configuration export on port 9443. You can find them on these links:
Java API
The following Java API exists - these methods are all exposed as part of the Administration API as additional methods in the dk.itp.portalprotect.admin.AdminClient class:
/** * Lists all API Groups */ public List<Config.APIGroup> listAPIGroups() throws IOException, AdminException; /** * Lists all APIs in a given group * * @param groupId ID of API Group */ public List<Config.API> listAPIs(String groupId) throws IOException, AdminException; /** * Lists all API versions contained in a single API * * @param apiId ID of API to list versions for */ public List<Config.APIVersion> listAPIVersions(String apiId) throws IOException, AdminException; /** * Creates a new API Group */ public Config.APIGroup createAPIGroup(Config.APIGroup group) throws IOException, AdminException; /** * Update an existing API Group */ public void updateAPIGroup(Config.APIGroup group) throws IOException, AdminException; /** * Removes an existing API Group * * @param id ID of API Group to remove */ public void removeAPIGroup(String id) throws IOException, AdminException; /** * Creates a new API * * @param groupId Group to create the API within * @param api API information */ public Config.API createAPI(String groupId, Config.API api) throws IOException, AdminException; /** * Updates an API * * @param api API to update */ public void updateAPI(Config.API api) throws IOException, AdminException; /** * Read a specific API Group from its ID * * @param groupId API Group ID */ public Config.APIGroup getAPIGroup(String groupId) throws IOException, AdminException; /** * Reads a specific API from its ID * @param apiId ID of API */ public Config.API getAPI(String apiId) throws IOException, AdminException; /** * Reads a specific API Version from its ID * * @param id ID of API Version */ public Config.APIVersion getAPIVersion(String id) throws IOException, AdminException; /** * Removes an API * * @param apiId ID of API to remove */ public void removeAPI(String apiId) throws IOException, AdminException; /** * Creates a new API Version * * @param apiId ID of API to create the version within * @param av API Version details */ public APIVersion createAPIVersion(String apiId, APIVersion av) throws IOException, AdminException; /** * Updates an API Version * * @param av API Version details */ public void updateAPIVersion(APIVersion av) throws IOException, AdminException; /** * Removes an API Version * * @param id API Version ID */ public void removeAPIVersion(String id) throws IOException, AdminException; /** * List all configured API Partners * */ public List<Config.APIPartner> listAPIPartners() throws IOException, AdminException; /** * List all configured API Partners for a specific developer * */ public List<Config.APIPartner> listAPIPartners(String developerId) throws IOException, AdminException; /** * Creates a new API Partner * * @param partner API Partner details */ public Config.APIPartner createAPIPartner(Config.APIPartner partner) throws IOException, AdminException; /** * Updates an API Partner * * @param partner API Partner details */ public Config.APIPartner updateAPIPartner(Config.APIPartner partner) throws IOException, AdminException; /** * Remove an API Partner * * @param id ID of API Partner to remove */ public void removeAPIPartner(String id) throws IOException, AdminException; /** * Gets a specific API Partner Application * @param applicationId API Partner Application ID */ public Config.APIPartnerApplication getAPIPartnerApplication( String applicationId ) throws IOException, AdminException; /** * Gets an AI Partner * * @param partnerId ID of Partner */ public Config.APIPartner getAPIPartner( String partnerId ) throws IOException, AdminException; /** * Creates a new API Partner Application * * @param partnerApplication API Partner Application Details */ public Config.APIPartnerApplication createAPIPartnerApplication(Config.APIPartnerApplication partnerApplication) throws IOException, AdminException; /** * Updates an API Partner Application * * @param application API Partner Application Details */ public Config.APIPartnerApplication updateAPIPartnerApplication(Config.APIPartnerApplication application) throws IOException, AdminException; /** * Removes an API Partner Application * @param id ID of API Partner Application */ public void removeAPIPartnerApplication(String id) throws IOException, AdminException; /** * Lookup API Developer from email address * * @param email Email address of API Developer */ public Config.APIDeveloper getAPIDeveloperFromEmail( String email ) throws IOException, AdminException; /** * Lookup API Developer from userid * Note: In this release, the id and email are the same * @param id user ID of API Developer */ public Config.APIDeveloper getAPIDeveloper( String id ) throws IOException, AdminException; /** * Export API Management data as a complete zip file */ public byte[] exportAPIManagementDataToZip() throws IOException, AdminException; /** * Export selected API Management data as a zip file */ public byte[] exportAPIManagementDataToZip(Config.APIExportParameters params) throws IOException, AdminException; /** * Import API Management data from a zip file * * @param zipped Zip file contents */ public void importAPIManagementDataFromZip(byte[] zipped) throws IOException, AdminException; /** * Searches API's based on parameters */ public APISearchResult searchAPIs(APISearchParameters parms) throws IOException, AdminException; /** * Searches API Developers based on parameters */ public APIDeveloperSearchResult searchAPIDevelopers(APIDeveloperSearchParameters parms) throws IOException, AdminException; /** * Deletes a developer from the API management (and the backend user database) */ public void deleteAPIDeveloper( String uid ) throws IOException, AdminException;
You can find full details about the data structure here: Data Structures - the Java API operations on these simplified objects (here shown with methods removed for readability)
package io.ceptor.apimanager; /** * API Management Configuration - contains data / configuration classes for APIs and related data objects. */ public class Config { public static enum APIType { openapi, soap, plainhttp } public static class APIGroup extends Parent { public String id; public String name; public String picture; public String description; public JSONArray tags; public List<String> apiIDs; } public static class API extends Parent { public String id; public String groupId; public String name; public String picture; public String description; public boolean isSubscriptionRequired; public List<String> subscriptionPlanIDs; public JSONArray tags; public List<String> versionids; } public static class APIVersion extends Parent { public String id; public String apiid; public String name; // Version public String description; public String basePath; public APIType apitype; public boolean isDeployed; public boolean cors; public String documentation; public JSONObject openAPISpec; public JSONObject implementation; public JSONObject security; public JSONArray tags; /* If private, it can still be deployed and called, but will not be visible in the developer portal */ public boolean isPrivate; } public static class APIPartnerApplication extends APIDeveloperParent { public String id; public String partner_id; public String name; public String description; /** Map of API id and subscription plan id */ public Map<String,String> subscriptions; /** Allowed redirect URIs */ public List<String> allowedUris; /** Allowed logout URIs */ public List<String> allowedLogoutUris; /** List of API keys for this application */ public List<String> apikeys; public String client_id; public String client_secret; } public static class APIPartner extends APIDeveloperParent { public String id; public String name; public String description; public String contact; public List<String> applicationids; public List<String> roles; } public static enum APIPartnerRole { OWNER, READ_ONLY, NONE; } public static enum APIApplicationRole { OWNER, DEVELOPER, READ_ONLY; } public static class APIDeveloper extends Parent { public String id; public String credentials; public String email; public Map<String,String> partners; public Map<String,String> applications; } public abstract static class APIDeveloperParent extends Parent { /** Map of UUID and role */ public Map<String,String> developers; } /** * * Represents a list of API versions / APIs deployed in a particular environment * */ public static class APIVersionsInEnvironment extends Parent { public String environmentName; public LinkedHashMap<String, APIGroup> groups; public LinkedHashMap<String, API> apis; public LinkedHashMap<String, APIVersion> versions; } public static class APISearchParameters extends Parent { public String partnerid; public String searchString; public boolean deployed; public APISearchSubscription subscription; public APIType type; /** Deployed/published in this environment */ public String environmentName; /** Base path pattern */ public String basePathPattern; public enum APISearchSubscription { IGNORE, REQUIRES, DOES_NOT_REQUIRE } } public static class APISearchResult extends Parent { public LinkedHashMap<String, APIGroup> groups; public LinkedHashMap<String, API> apis; public LinkedHashMap<String, APIVersion> versions; } public static class APIDeveloperSearchParameters extends Parent { public String searchString; } public static class APIDeveloperSearchResult extends Parent { public LinkedHashMap<String, APIDeveloper> developers; public boolean moreResults; } public static class APIExportParameters extends Parent { public List<String> groupIds; public List<String> apiIds; public List<String> apiVersionIds; public boolean exportConfiguration; public boolean exportPartners; } }
Related content
Admin REST Service
Admin REST Service
More like this
Administration API
Administration API
Read with this
Provide list of available APIs to clients
Provide list of available APIs to clients
More like this
API Manager ACLs in Ceptor Console
API Manager ACLs in Ceptor Console
More like this
Agent REST Service
Agent REST Service
More like this
© Ceptor ApS. All Rights Reserved.