In-depth look into Oracle API Catalog (OAC) 12c

11
Share this on .. Tweet about this on TwitterShare on LinkedIn26Share on Facebook1Share on Google+2Email this to someoneShare on Tumblr0Buffer this page

With the release of Oracle Enterprise Repository 12c another product was released. Oracle API Catalog 12c (OAC) allows you to build a catalog of your organization APIs. OAC provides a layer of visibility to those APIs so application development knows what and which one to use.  OAC includes a simple metamodel for an API asset, automation to populate OAC, and the ability for users to search OAC for APIs and understand the details of the APIs to assess their fit in the user’s application.

Installation

I’m not going to bore you with the details about the installation by giving a installation guide. It took me about 40 minutes from scratch (excluding downlOERoad time). The steps are describes in the installation guide Oracle provides. OAC is part of the OER 12c installation jar, but can be licensed and installed, as an own managed domain, without licensing and installing OER.

The steps to take on high level (from scratch):

  1. Download and install Oracle Database, Fusion Middleware Infrastructure 12c, Oracle Enterprise Repository 12c, RCU patch 18791727 and Weblogic patch 18718889 (these last two are important, else you can’t install OAC).
  2. Run RCU (oracle_common/bin/rcu.sh|bat) and create the OAC repository
  3. Run Weblogic Domain creation (weblogic/bin/config.sh|bat) and create a new which includes OAC.
  4. After installation and startup of weblogic and managed service you can find the OAC console at url: http://serverhost:8111/oac

Note: if you harvesting from another weblogic server (like SOA Suite 12c), the weblogic patch should also be installed there.

Taking the first steps

When taking my first steps the official getting started guide can help you a lot. OAC has four high-level features. OAC collects services, it has a harvester which creates API assets in OAC. After harvesting you can add metadata to the API assets like description, tags and documentation. After harvesting and editing an API asset it can be published so it is visible for application development. Published APIs can be discovered and used  through the API Catalog console and via the Oracle JDeveloper Oracle Enterprise Repository plug-in.

Logging in for the first time

After installing FMW & OAC 12c and starting the Weblogic server you can login into the provided OAC console (default) running at http://serverhost:8111/oac.

OAC12c: Login to the provided console (admin / weblogic 1)

OAC12c: Login to the provided console (admin / weblogic 1)

The default username and password is admin / weblogic1. The first time you are asked to change the password.

OAC12c: First-time login needs password change

AOAC12c: First-time login needs password change

After changing the password you will login into the console. The dashboard will be empty because no APIs are harvested yet. But when APIs are harvested they are listed at this page. On this page you can also navigate to “My APIs” which list the API you bookmarked.

OAC12c: Empty dashboard after first-time login

OAC12c: Empty dashboard after first-time login

As admin, navigate to “Admin”, you can configure Users and Departments, control Sessions, change System settings and Import/Export the catalog. This blog will go in to the Admin features later on.

OAC12c: Admin page for configuring users, departments, sessions and change system settings

OAC12c: Admin page for configuring users, departments, sessions and change system settings

Collecting / harvesting services

The first activity is to harvest APIs into OAC. The harvester is used to populate OAC with API assets from SOA Suite and Service Bus or other deployed services. The harvesting process can be run from the command line or can be integrated into the build process. The latter can be used to automatically do the harvest at build time. Harvested API assets will get a “Draft” state and won’t be visible to developers yet.

For this blog I will use the command line harvester. There are to types of harvesters; one for SOA Suite, OER & File-based assets and one for harvesting OSB. I will use the first harvester and use it with integrated SOA Suite 12c environment.

OAC12c: Harvest assets using command line harvester

OAC12c: Harvest assets using command line harvester

For this blog I changed the HarvesterSettings.xml, which is decribed here, and added OAC en SOA server information, including projects to harvest.

OAC12c: Change Harvester Settings in supplied XML configuration

OAC12c: Change Harvester Settings in supplied XML configuration

Doing it like this you don’t have to add any parameters to harvest.sh|bat. If you want to harvest a specific asset you can use the command line properties, for example another SOA composite.

harvest.bat -remote_url localhost:7003 -remote_username weblogic -remote_server_type SOASuite -remote_project ValidatePayment_rev1.0 -soa_partition default

The result after running the harvest command should look something like on the image below (in preview mode).

OAC12c: Result of running harvest command (preview mode)

OAC12c: Result of running harvest command (preview mode)

View harvested APIs

After harvesting you first asset(s) you can login the OAC console to see the result. Assets that are harvested will get the “Draft” status, thats why  after logging into the OAC console again, no APIs are published and visible on the dashboard. Search on Service Type = Draft to view newly harvested APIs.

OAC12c: Search on draft for freshly harvested APIs

OAC12c: Search on draft for freshly harvested APIs

To see, edit and publish the API asset details click on the specific row. The details page opens which shows information about the asset like Type of Asset, Endpoint, Harvester properties and WSDL summary including namespace, porttype and methods.

OAC12c: API asset details including endpoint and WSDL summary

OAC12c: API asset details including endpoint and WSDL summary

Besides the details you can perform some actions (from left to right):

OAC12c: API actions

Link, toggle view, bookmark, edit & delete

  • Link to details page: Get URL of API asset details page you currently look at and can share.
    Example: http://soabpm:8111/oac/index.jsp?assetid=50003&renderMinMaxButton=false&renderNextPrevButtons=false

Toggle between tabs and view all: You can view the API asset details in tabs (tab per category) and view them on single page like displayed above.OAC12c: Tabbed view of API asset details

  • Add to My APIs: Click to bookmark API. After bookmarking API it is visible under MyAPIs page.
  • Edit details: Page to edit API asset details. More about this below.
  • Delete items: Delete the API asset from the repository.

Add metadata to harvested API

To add metadata or edit other details of an API asset click on the edit icon/button to open the Edit Asset page. On this page you can change the name, change the version, add keywords and descriptions, but also add a link to documentation URL and assign/upload an icon. To publish an API change the API status from Draft to Published. It is also possible to set the API active status from Active to Retired.

OAC12c: On the Edit Asset page details like, keyword, description and version can be changed

OAC12c: On the Edit Asset page details like, keyword, description and version can be changed

Publish a draft API

To publish an API you just need to change the API status to published and saving the asset.

OAC12c: Publish-API
On the overview page the API status is changed and the API details can be exported to Excel and PDF.

OAC12c: API status changes when published

OAC12c: API status changes when published

When going back to the dashboard the recently published API is visible. When you click on the name of the API asset the user is redirected to the details page.

OAC12c: Dashboard listing recently published APIs

OAC12c: Dashboard listing recently published APIs

On both the dashboard as on the Asset detail page reviews are mentioned. The admin user can’t perform this action. For this we will create some new users.

Sharing the APIs with other users

After taking the first steps the APIs can be shared with other users. To do so new users can be added with specific roles. As admin user click on the “Admin” menu item and choose the Users section (selected by default). From this page new users can be created, you can search for users and edit & delete users.

OAC12c: Users administration page

OAC12c: Users administration page

Add, search, edit and delete users

To create a new user click in the Users section on the Add User icon on the top-right of the page section. The Create New User page is displayed. The page is divided into three sub sections; user information, roles and departments. The user information section contains form fields for the username, password, real name and email & phone information. It is also possible to force changing the password and allow the password to never expire. A user can have one of four statuses; Active, Inactive, Lockout (after 3 failed logins) and Unapproved.

OAC12c: Create new user - overview section

OAC12c: Create new user – overview section

The roles section gives the opportunity to give the user specific access. The admin role gives you access to harvest, edit & publish API assets and manage application settings liked described in this blog so far. The curator can harvest and edit & publish API assets and the developer can access / search published APIs.

OAC12c: Create new user - roles section

OAC12c: Create new user – roles section

The department section gives the opportunity to add the user to a specific department. Departments is not more then just a filter of which users belong to that department. It is not necessary to add the new user to a department.

OAC12c: Department Details

OAC12c: Department Details

To see user details and change user information or even delete a user go back to the Users section. To see user details click on the name of the user and you will be navigated to the User Details page. You can also search on department, role and status. The latter can i.g. be used if a user is lockout of there account. To delete a user just checked the box in front of there username and click on the Delete button.

OAC12c: Search, edit or delete Users

OAC12c: Search, edit or delete Users

The User Details page shows the same sub sections; overview and roles & departments the user is assigned to. The interface is very universal throughout the application. On this page you can also switch to tabbed mode, one tab per sub section, and able to navigate to the edit page, duplicating the user (create new user with same roles and departments) or deleting the user from the repository.

OAC12c: User details and actions

OAC12c: User details and actions (edit, duplicate and delete)

Also create a user, developer1.  with the Developer role.

OAC12c: Developer User

OAC12c: Developer User

Switching user

To switch to a different user you can sign out of the OAC console by selecting the “Sign Out” options under your user menu. Just click on the arrow on the right side of your name.

OAC12c: Switching User by signing out of OAC console

OAC12c: Switching User by signing out of OAC console

Logging in as Curator will give the same functions as an Administrator, but without the Admin tasks.

OAC12c: Curator Dashboard

OAC12c: Curator Dashboard

Logging in as Developer will give even less options. A developer can only search in published API and add APIs to there favorites.

OAC12c: Developer Dashboard

OAC12c: Developer Dashboard

Adding an API to My APIs and reviewing the API

Als user you can add APIs to you favorites (My APIs). To add a API to your favorites go to the API asset details page and add the API to My APIs by clicking the “Add this to My APIs” button. After adding it to My APIs the details page is update and shows how many times it is added (usage) in the past 6 months. Users that have added the API to there My APIs can review on the API asset.

OAC12c: Adding API asset to My APIs

OAC12c: Added API asset to My APIs

When you click on the “View Usage History” link a pop-up is opened which shows a graph with usage over past months and which users uses the API.

OAC12c: API usage history

OAC12c: API usage history

To view all API that the user had added to My APIs the user van click on the “My APIs”  menu item. The My APIs page shows all the APIs the user has added and gives the user the opportunity to view the details by clicking on the name of the API, to write a review about an API or to delete an API from the list.

OAC12c: My APIs showing all added API and actions to review or delete a API

OAC12c: My APIs showing all added API and actions to review or delete a API

To write a review about an API click on the first (review) icon on the right side of the APIs name. A pop-up is opened with a form that the user can use to submit a review. The user can give a rating and a comment (max 4000 characters). After submitting the review the page is redirected to the a page which displays all reviews.

OAC12c: Submit a Review and viewing API reviews

OAC12c: Submit a Review and viewing API reviews

OAC12c: Dashboard shows latest reviews

OAC12c: Dashboard shows latest reviews

Other administrator tasks

View sessions

The administrator can perform some other tasks that I didn’t discuss yet. On the Sessions section page all (active) sessions are displayed and an administrator can look into the details of the session. An administrator can also delete sessions, which means if a user is active in the console the user will be logged out.

OAC12c: An administrator can view (active) sessions

OAC12c: An administrator can view (active) sessions

OAC12c: An administrator can view session details

OAC12c: An administrator can view session details

System settings

An administrator can change a lot of setting to change the behavior of the OAC console. The system settings page is divided into four main sections; Functional settings, Server Settings, Enterprise Authentication and Import and Export settings (not the actual import/export).

The functional settings sections contains settings for search results and printing details via PDF:

OAC12c: Functional Settings - Search results and PDF generation

The server settings section contains settings for embedding HTML in asset details:

OAC12c: Server Settings

The Enterprise Application section contains settings for connection to a LDAP server for user management:

OAC12c: Enterprise Application Settings

The Import/Export sections contains settings for setting timeouts:

OAC12c: Import/Export Settings

Import / export repository

The import / export of the repository can be done in the corresponding section, but instead of it being done in the web UI it uses java Webstart.

OAC12c: Import/Export Tool

My Verdict

To conclude this blog post I will give my verdict about Oracle API Catalog 12c. In the last week I had some ups but also some downs. I started on my windows laptop and installed everything locally. At first everything seemed fine, I could harvest my first Asset, but after trying to view the details I got a error after another. In the days that followed I was helped by Oracle Development and in special by Mark Dutra, but we couldn’t figure out what the problem was. I think it has something to do with security settings and how the laptop is configured (domain wise).

After creating a Linux VM and installed everything again I finally had success and the tables were turned. I really like the interface, it is very clean and uses a common workflow on every page. The use of a separate harvester (command-line or ANT task) is in one way a great solution, because you can use it in your already existing build process, but I missed the option to do this using the OAC console, you don’t always have access to use scripting.

The harvested APIs are added as Draft and an admin or curator can edit the information and publish the API. This version is a great start with lots of information already, like the endpoint, WSDL/WADL summary including methods and message payload. But I miss the possibility to register dependencies between APIs. If API are harvested from one service the separate APIs are not linked to each other.

Adding APIs to your  My APIs and the possibility to write a review can be handy. The simple metrics tell you about the usage and who uses it which is already usefull, hopefully in the future more metrics will be available in OAC.

As an administrator you can perform a lot of tasks using the UI. Adding users, looking at active sessions and import/export the repository. It worked fine on Linux, but on windows I had no result. Also the possibility to connect to an LDAP will make it much easier to add users and departments.

Pros:

  • Clean and easy UI with common workflow on most pages
  • Harvest through command-line (run-time) or ANT (design-time build)
  • Possibility to edit Assets and add documentation
  • Review on API and give feedback when an API is not working correctly
  • Metrics about usage
  • A great set of administration tools

Cons:

  • Does not work well with Windows.
  • Catalog features are still basic, no dependency viewer
  • No online harvester, you can’t harvest via the OAC console

For questions you can email me on robert.van.molken@amis.nl.

Share this on .. Tweet about this on TwitterShare on LinkedIn26Share on Facebook1Share on Google+2Email this to someoneShare on Tumblr0Buffer this page

About Author

Robert is internationally recognized for its deep technological insight in Oracle technology and this are this views. He is a speaker at (international) conferences and is a frequent blogger and participates in OTN ArchBeat Podcasts.Robert one of the two SOA/BPM SIG leads for the Dutch Oracle User Group (OGh) and organizes these meetups. He works closely with the SOA Oracle Product Management team by participating in the Beta programs. In 2015, Robert was named Oracle ACE for SOA and Middleware because of these contributions.

11 Comments

  1. Good day , I just try almost everything mentioned, but what is not mentioned is that after the installation can show one problem, when from console add the service (URL ) via ‘ -file harvest.bat URL_SERVICIO ‘ on the console can get an error: ” java.lang.Exception : password must be encrypted ”

    https://lh3.googleusercontent.com/-YI1MBtyABKo/V5T4fNqvImI/AAAAAAAAJ3k/-XdUbMj52zEKtAA_ES71R0av4L3ltEljwCCo/s800/evidencia.png

    In my case to complete mentioned i believes and install: ofm_oer_oac_generic, patches, RCU, domain , etc. , can successfully start the Web console, but when you add the URL this error encryption shown in image always comes out , it may be due .. ?

  2. Hi a question I am wanting to install the OER but I’m requiring patches:
    18718889 and 18791727, these patches are Free or have any cost ..?, I wonder if there is any external repository for not having to go through ‘Oracle Support’. Thank you.

  3. What about the following error when select an asset in OAC after run harvest?
    An error occurred while loading the specified Asset.
    Please contact the registrar.

  4. Hi robert

    i’m trying to populate OAC with API assets from file:

    harvest.bat -file “C:\1\AsyncResponseService.wsdl”

    but the following occurs (log):

    0 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager – unable to initialize harvester plugin file: c:\oac_oracle\oer\tools\harvester\plugins_oac\mds.starter
    2195 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager – unable to initialize harvester plugin file: c:\oac_oracle\oer\tools\harvester\plugins_oac\soasuite11g.remotereader
    2243 [main] INFO com.oracle.oer.sync.framework.MetadataManager – oracle enterprise_repository_harvester version: v12.1.3.0.0-141027_0001-1634845
    2412 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager – unable to initialize harvester plugin file: c:\oac_oracle\oac\tools\harvester\plugins_oac\mds.starter
    2609 [main] WARN com.oracle.oer.sync.framework.impl.DefaultPluginManager – unable to initialize harvester plugin file: c:\oac_oracle\oac\tools\harvester\plugins_oac\soasuite11g.remotereader
    9064 [main] INFO com.oracle.oer.sync.framework.MetadataManager – successfully completed the harvest
    9065 [main] INFO com.oracle.oer.sync.plugin.writer.oer.OERWriter – starting oac shutdown and clean up…

    New API listed at console
    API/AsyncResponseService SOAP 1.0 Draft
    but at detail page shows an error:

    “API: {http://www.bea.com/async/AsyncResponseService}API/AsyncResponseService (1.0)

    An error occurred while loading the specified Asset.
    Please contact the registrar. ”

    OAC installed in location: C:\OAC_Oracle\oer\tools\harvester
    Can u help me?
    Thanks in advance

  5. Hi robert , i am new to Oracle fusion middleware 12c and trying to download and configure Fmw, WLS and BI Publisher , the problem im facing is when ever i download fmw_12.1.3.0.0_infrastructure_Disk1_1of1.zip from OTN ( as im a free user there ) i cant unzip it , winrar breaks the operation by saying this message : Checksum errror in fmw_12.1.3.0.0_infrastructure_Disk1_1of1.jar , file is corrupt , dont know what to do , i download it again n again from OTN but got same error , here i am using Windows 7 64 bit , JDK 1.8.0_25 , and already install oracle databage 11g , hope u can help 🙂

    • I think you can check if the file size of the download is the same as oracle describes on the download page.
      But first try unzipping it using another tool like 7zip, it that does not work then email me back and I will download it and put the jar on my dropbox.

      Other thing to keep in mind is that fmw 12c does not work om JDK 1.8, it only works on 1.7.
      In 1.8 the security model is changed and fmw 12c won’t start up.

Leave a Reply