Open APIs

 View Only
  • 1.  TMF640 - Why are PUT operations not supported whereas they are generally allowed as per TMF630?

    TM Forum Member
    Posted Oct 28, 2020 01:08
    There are certain use cases where entities beyond our control only allow PUT style interactions when making a modification to a service. 
    Why are PUT operations not supported in TMF640 whereas they are generally allowed as per TMF630?

    ------------------------------
    Ian Mounsey
    Telstra Corporation
    ------------------------------


  • 2.  RE: TMF640 - Why are PUT operations not supported whereas they are generally allowed as per TMF630?

    TM Forum Member
    Posted Oct 28, 2020 01:23
    Hi Ian

    I might be considered the "guilty party" here. I have argued cogently (a while back) against the need to overload the Open APIs with both PATCH and PUT, since anything you can do with PUT you can also do with PATCH, while the converse is not true. Additionally, PUT is more difficult to use, since it is a destructive replacement, and requires the consumer to have the entire document (and take care not to touch fields that shouldn't be touched, such as ID), while PATCH allows selective modifications in any place in the document.

    It appears that my views were accepted, and as a result most recently published API swaggers and user guides do not include PUT.

    Always willing to learn, so perhaps you could enlighten us on the specific circumstances that force you to use PUT.

    Note that you can always extend your API implementation by adding a PUT operation, obviously this will not affect conformance to the standard.

    Hope it helps

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 3.  RE: TMF640 - Why are PUT operations not supported whereas they are generally allowed as per TMF630?

    TM Forum Member
    Posted Oct 29, 2020 02:22

    Thanks Jonathan, 

    We have a shim ODM (that provides a TMF640 end point) that front ends an external 3rd party API. That 3rd party requires all information even for a MOD (ie does not support PATCH). Our main ODM calls the shim ODM via POST to instantiate a new Service - so far so good. 
    The Main ODM has the Service Inventory.

    With a MOD - say a bandwidth attribute change - our ODM PATCHs the Service on the schim ODm - but for it to get the 3rd party to act upon that change it must supply all the information. Hence it must hold a duplicate of all of the Service Information. Holding the same data in 2 places is simply not ideal. 



    ------------------------------
    Ian Mounsey
    Telstra Corporation
    ------------------------------