Hi,
I have started working on the $Subject and below is the rest api
definitions.


   - To avoid string manipulations, Mediation policy post is done as a file
   upload. Hence we can provide the sequence file(xml content) as an input in
   the form of multipart/form-data
   ex:

   curl -X POST
https://localhost:9443/api/am/publisher/v1.0/apis/2a3d5469-5394-4576-974a-5f8bf7e400bd/mediation-policies
   -H "Authorization: Bearer 5cbc7d4f-d4f1-33c9-87e4-68a22ae7e602"
   -F file=@sampleSeq2.xml
   -H "Content-Type: multipart/form-data"
   -F "type=in"

   - To retrieve a mediation sequence, a new REST api has been introduced
   which will download sequence as a file. Where as in APIM 2.x REST API it
   was returning as a string.
   Please refer /apis/{apiId}/mediation-policies/{mediationPolicyId}/content
   :


######################################################
# The "specific mediation policy" resource APIs
######################################################
'/apis/{apiId}/mediation-policies':

  
#-----------------------------------------------------------------------------------------
  # Retrieving the list of all API specific mediation sequences under
a given search condition
  
#-----------------------------------------------------------------------------------------
  get:
    security:
      - OAuth2Security:
        - apim:mediation_policy_view
    x-examples:
        $ref: docs/examples/apis/apis_id_mediationpolicies_get.yaml
    summary: |
      Get all mediation policies of an API
    operationid:  apisApiIdMediationPoliciesGet
    description: |
      This operation provides you a list of available mediation
policies of an API.
    parameters:
      - $ref: '#/parameters/apiId'
      - $ref : '#/parameters/limit'
      - $ref : '#/parameters/offset'
      - name : query
        in: query
        description: "-Not supported yet-"
        type: string
      - $ref : "#/parameters/If-None-Match"
    tags:
      - Mediation Policies of an API
    responses:
      200:
        description: |
          OK.
          List of qualifying APIs is returned.
        schema:
          $ref: '#/definitions/MediationList'
        headers:
          Content-Type:
            description: The content type of the body.
            type: string
          ETag:
            description: |
              Entity Tag of the response resource. Used by caches, or
in conditional requests (Will be supported in future).
            type: string
      304:
        description: |
          Not Modified.
          Empty body because the client has already the latest version
of the requested resource (Will be supported in future).
      406:
        description: |
          Not Acceptable.
          The requested media type is not supported
        schema:
          $ref: '#/definitions/Error'

  #----------------------------------------------------------------------------
  # Upload an API specific mediation policy
  #----------------------------------------------------------------------------
  post:
    consumes:
    - multipart/form-data
    security:
      - OAuth2Security:
        - apim:mediation_policy_create
    x-examples:
      $ref: docs/examples/apis/apis_id_mediationpolicies_post.yaml
    summary: Add an API specific mediation policy
    operationid: apisApiIdMediationPoliciesPost
    description: |
      This operation can be used to add an API specifc mediation policy.
    parameters:
      - in: formData
        name: file
        description: Mediation Policy to upload
        type: file
        required: false
      - in: formData
        name: inlineContent
        description: Inline content of the Mediation Policy
        type: string
        required: false
      - in: formData
        name: type
        description: Type of the mediation sequence
        required: true
        type: string
      - $ref: '#/parameters/apiId'
      - $ref: '#/parameters/If-Match'
    tags:
      - Mediation Policies of an API
    responses:
      201:
        description: |
          OK.
          mediation policy uploaded
        schema:
          $ref : '#/definitions/Mediation'
        headers:
          Location:
            description: |
              The URL of the uploaded mediation policy of the API.
            type: string
          Content-Type:
            description: |
              The content type of the body.
            type: string
          ETag:
            description: |
              Entity Tag of the response resource.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
          Last-Modified:
            description: |
              Date and time the resource has been modifed the last time.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
      400:
        description: |
          Bad Request.
          Invalid request or validation error.
        schema:
          $ref: '#/definitions/Error'
      404:
        description: |
          Not Found.
          The resource to be updated does not exist.
        schema:
          $ref: '#/definitions/Error'
      412:
        description: |
          Precondition Failed.
          The request has not been performed because one of the
preconditions is not met.
        schema:
          $ref: '#/definitions/Error'

######################################################
# The "Individual API specific mediation sequence" resource
######################################################
/apis/{apiId}/mediation-policies/{mediationPolicyId}:

  #-----------------------------------------------------
  # Retrieve a particular API specific mediation squence
  #-----------------------------------------------------
  get:
    security:
      - OAuth2Security:
        - apim:api_view
    x-examples:
      $ref: docs/examples/apis/apis_id_mediationpolicies_id_get.yaml
    summary: Get an API specific mediation policy
    operationid:  apisApiIdMediationPoliciesMediationPolicyIdGet
    description: |
      This operation can be used to retrieve a particular API specific
mediation policy.
    parameters:
      - $ref: '#/parameters/apiId'
      - $ref: '#/parameters/mediationPolicyId'
      - $ref: '#/parameters/If-None-Match'
    tags:
      - Mediation Policy of an API
    responses:
      200:
        description: |
          OK.
          Mediation policy returned.
        schema:
          $ref: '#/definitions/Mediation'
        headers:
          Content-Type:
            description: |
              The content type of the body.
            type: string
          ETag:
            description: |
              Entity Tag of the response resource.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
          Last-Modified:
            description: |
              Date and time the resource has been modifed the last time.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
      304:
        description: |
          Not Modified.
          Empty body because the client has already the latest version
of the requested resource (Will be supported in future).
      404:
        description: |
          Not Found.
          Requested Document does not exist.
        schema:
          $ref: '#/definitions/Error'
      406:
        description: |
          Not Acceptable.
          The requested media type is not supported
        schema:
          $ref: '#/definitions/Error'

  #-----------------------------------------------------
  # Delete the mediation policy
  #-----------------------------------------------------
  delete:
    security:
      - OAuth2Security:
        - apim:mediation_policy_manage
    x-examples:
      $ref: docs/examples/apis/apis_id_mediationpolicies_id_delete.yaml
    summary: Delete an API specific mediation policy
    operationid:  apisApiIdMediationPoliciesMediationPolicyIdDelete
    description: |
      This operation can be used to delete an existing API specific
mediation policy providing the Id of the API and the Id of the
mediation policy.
    parameters:
      - $ref: '#/parameters/apiId'
      - $ref: '#/parameters/mediationPolicyId'
      - $ref: '#/parameters/If-Match'
    tags:
      - Mediation Policy of an API
    responses:
      200:
        description: |
          OK.
          Resource successfully deleted.
      403:
        description: |
          Forbidden.
          The request must be conditional but no condition has been specified.
        schema:
          $ref: '#/definitions/Error'
      404:
        description: |
          Not Found.
          Resource to be deleted does not exist.
        schema:
          $ref: '#/definitions/Error'
      412:
        description: |
          Precondition Failed.
          The request has not been performed because one of the
preconditions is not met.
        schema:
          $ref: '#/definitions/Error'

  #-----------------------------------------------------
  # Update a mediation policy
  #-----------------------------------------------------
  put:
    consumes:
    - multipart/form-data
    security:
      - OAuth2Security:
        - apim:mediation_policy_manage
    x-examples:
      $ref: docs/examples/apis/apis_id_mediationpolicies_id_put.yaml
    summary: Update an API specific mediation policy
    operationid:  apisApiIdMediationPoliciesMediationPolicyIdPut
    description: |
      This operation can be used to update an existing mediation
policy of an API.
    parameters:
      - in: formData
        name: file
        description: Mediation Policy to upload
        type: file
        required: false
      - in: formData
        name: inlineContent
        description: Inline content of the Mediation Policy
        type: string
        required: false
      - in: formData
        name: type
        description: Type of the mediation sequence(in/out/fault)
        required: true
        type: string
      - $ref: '#/parameters/apiId'
      - $ref: '#/parameters/mediationPolicyId'
      - $ref: '#/parameters/If-Match'
    tags:
      - Mediation Policy of an API
    responses:
      200:
        description: |
          OK.
          Successful response with updated API object
        schema:
          $ref: '#/definitions/Mediation'
        headers:
          Location:
            description: |
              The URL of the newly created resource.
            type: string
          Content-Type:
            description: |
              The content type of the body.
            type: string
          ETag:
            description: |
              Entity Tag of the response resource. Used by caches, or
in conditional requests (Will be supported in future).
            type: string
          Last-Modified:
            description: |
              Date and time the resource has been modifed the last time.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
      400:
        description: |
          Bad Request.
          Invalid request or validation error
        schema:
          $ref: '#/definitions/Error'
      403:
        description: |
          Forbidden.
          The request must be conditional but no condition has been specified.
        schema:
          $ref: '#/definitions/Error'
      404:
        description: |
          Not Found.
          The resource to be updated does not exist.
        schema:
          $ref: '#/definitions/Error'
      412:
        description: |
          Precondition Failed.
          The request has not been performed because one of the
preconditions is not met.
        schema:
          $ref: '#/definitions/Error'
###################################################################
# The "Individual API specific mediation sequence content" resource
###################################################################
/apis/{apiId}/mediation-policies/{mediationPolicyId}/content:

  #---------------------------------------------------------------
  # Retrieve a particular API specific mediation sequence content
  #---------------------------------------------------------------
  get:
    security:
    - OAuth2Security:
      - apim:api_view
    x-examples:
      $ref: docs/examples/apis/apis_id_mediationpolicies_id_content_get.yaml
    summary: Downloadt an API specific mediation policy
    operationid:  apisApiIdMediationPoliciesMediationPolicyIdContentGet
    description: |
      This operation can be used to download a particular API specific
mediation policy.
    parameters:
    - $ref: '#/parameters/apiId'
    - $ref: '#/parameters/mediationPolicyId'
    - $ref: '#/parameters/If-None-Match'
    tags:
    - Mediation Policy content of an API
    responses:
      200:
        description: |
          OK.
          Mediation policy returned.
        headers:
          Content-Type:
            description: |
              The content type of the body.
            type: string
          ETag:
            description: |
              Entity Tag of the response resource.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
          Last-Modified:
            description: |
              Date and time the resource has been modifed the last time.
              Used by caches, or in conditional requests (Will be
supported in future).
            type: string
      304:
        description: |
          Not Modified.
          Empty body because the client has already the latest version
of the requested resource (Will be supported in future).
      404:
        description: |
          Not Found.
          Requested file does not exist.
        schema:
          $ref: '#/definitions/Error'


Thanks & Regards,
Ishara Cooray
Associate Technical Lead
Mobile : +9477 262 9512
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to