Open APIs

 View Only
Expand all | Collapse all

Query Resources with attribute filtering from TMF630_REST_API_Design_Guidelines_Part_1_v4.2.0.pdf

  • 1.  Query Resources with attribute filtering from TMF630_REST_API_Design_Guidelines_Part_1_v4.2.0.pdf

    TM Forum Member
    Posted 9 days ago

    Hi i have 3 questions about the point attribute filtering:

    4.4. Query Resources with attribute filtering
    1) Syntax für ORING [{attributeName}={attributeValue};{attributeValue}*]
    Example:
    status=acknowledged;status=rejected
    This would match the syntax
    [{attributeName}={attributeValue}(;{attributeName}={attributeValue})*]
    2) Operator Literal
    regex , *= URI Encoded %3D~
    The URI form is not equal to "*=" but "=~"
    Does regex ist not prefix with an DOT like the other literal operators ?
    3) With .gte also >= is used, but .lte has an unknown special character that maybe ≤ ?

    Gruß   Thomas Lußnig



    ------------------------------
    Thomas Lußnig
    T-Systems International Services GmbH
    ------------------------------


  • 2.  RE: Query Resources with attribute filtering from TMF630_REST_API_Design_Guidelines_Part_1_v4.2.0.pdf

    TM Forum Member
    Posted 5 days ago
    Hi Thomas,

      Thank you very much for the valuable feedback.
      The issues have already been addressed and are going in the next release.
      The ORing example was rectified and clarified:

    Attribute values ORING is supported and is achieved by providing a filtering expression where the same attribute name is duplicated a number of times [{attributeName}={attributeValue}&*] different values.
    
    Alternatively the following expression [{attributeName}={attributeValue},\{ attributeValue }*] is also supported. 
    ORING can also be explicit by using " ; " many time [{attributeName}={attributeValue};{attributeValue}*]
    
    The "OR" behavior can also be achieved by providing a filtering expression using one of the following expressions.
    
    For example:
    
    GET /api/troubleTicket?status=acknowledged;rejected
    
    GET /api/troubleTicket?status=acknowledged;rejected&type=BillDispute
    
    GET /api/troubleTicket?status=acknowledged,rejected
    
    GET /api/troubleTicket?status=acknowledged,rejected&type=BillDispute​

    The "regexp" operators has also been clarified:

    .regex=
    
    Regexp expression 
    
    Note: all regexp special characters must be encoded
    
    Example: Consider a regexp expression to search for the words Compliant and Bill:
    
    ~^.?\bCompliant\b.?\bbill\b.*?$ 
    
    (delimiter is ~)
    
    which URI encoded is equivalent with:
    
    ~%5E.%2A%3F%5CbCompliant%5Cb.%2A%3F%5Cbbill%5Cb.%2A%3F%24
    
    GET /api/troubleTicket?description.regex=~%5E.%2A%3F%5CbCompliant%5Cb.%2A%3F%5Cbbill%5Cb.%2A%3F%24​


     And all the other operators including .lte have additional clarifications. Now in regards to .lte the special character is just an editor error, converting the characters < = into

    .lte <=
    
    less than or equal to (<=)
    
    Return results where the search criteria field is equal or less than
    
    Example:
    
    GET /api/troubleTicket?expectedResolutionDate.lte=2017-04-20
    
    or
    
    GET /api/troubleTicket?expectedResolutionDate%3C%3D=2017-04-20


    Thank you,
    Florin



    ------------------------------
    Florin Tene
    CityFibre
    ------------------------------