Open APIs

 View Only
  • 1.  Multiple applications exposing the same TMF specification

    Posted Jan 28, 2021 11:35
    Edited by Lynn Dueck Jan 28, 2021 11:37

    There have been threads in the forum that discuss the need for multiple systems exposing the same TMF specification. As a sample use case, an order management system naturally exposes TMF 622 but additionally that a billing system may need to expose 622 for the purposes of capturing a billing order that is driven from the product order.

    I'm trying to piece together some of the nuances of how this should work in the swagger and am looking for help.

    - if the two systems implement the same specification, how are the apis and event listeners distinguished from each other?

    - does each system just have a different api root? (POST /productOrderingManagement/productOrder   vs  POST billing/productOrder )

    OR does the billing system use polymorphism and create a "BillingOrder" subtype of the main ProductOrder resource so that the differentiator is in the @type attribute?
    (POST /productOrderingManagement/productOrder   VS  POST /productOrderingManagement/productOrder@type=billingOrder)

    While the latter may work for POST where a payload exists and the type information can be supplied in that payload, how would it work in a DELETE case where there is no payload? Does that mean the billing 622 specification has to add a parameter for type so that the differentiator can be included in the url? Or is that ability implicit? (DELETE /productOrderingManagement/productOrder@type=billingOrder)

    ​​

    ------------------------------
    Lynn Dueck
    Oracle Corporation
    ------------------------------


  • 2.  RE: Multiple applications exposing the same TMF specification

    Posted Jan 29, 2021 10:53
    Hi Lynn
    Just my perspective on this but I guess the API Host & Base Path could be useful. (https://swagger.io/docs/specification/2-0/api-host-and-base-path/ )

    Take example of ONAP NBI serviceOrder (NBI is the ONAP component exposing service order), the basePath is /nbi/api/v4 and then the resource ServiceOrder. From a Product Order delivery we will trigger http:{host1}..../nbi/api/v4/serviceOrder or http:{host2}..../myOtherSom/api/v1/serviceOrder (depending on the SOM order in charge for the service)/

    Hope it helps,
    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    My answer are my own & don't represent necessarily my company or the TMF
    ------------------------------