Hi All, I have completed initial implementation for url-mapping based APIs. Attached sample API and its definitions. I am further working on supporting uri-templates based definitions.
Thanks. On Thu, Sep 22, 2016 at 2:09 PM, Jagath Sisirakumara Ariyarathne < [email protected]> wrote: > Hi, > > In this particular implementation for Integration Cloud, we planned to go > with an extension which uses existing information in synapse configurations > without updating synapse code base. Therefore as Maheeka mentioned in [1], > we are going to provide limited information at initial phase. But in long > run, we need to extend this to store all required API definitions in > synapse configurations. > > [1] - https://gist.github.com/maheeka/ec23751f21d8d7d5abaa4f9130f233f2 > > Thanks. > > On Thu, Sep 22, 2016 at 8:23 AM, Joseph Fonseka <[email protected]> wrote: > >> Hi >> >> On Tue, Sep 20, 2016 at 4:18 PM, Maheeka Jayasuriya <[email protected]> >> wrote: >> >>> >>> Please note these changes were done based on the level of information we >>> have on the API by referring to it's configuration. For example, we do not >>> have a way of determining the request format or uri parameter types and >>> content-types of the API. This will require further digging and analyzing >>> on the configuration. >>> >> >> Have you consider adding additional information as annotations/notes in >> the config. AFAIK we do not have a config to add annotations so currently >> we can define them as properties but going forward may be we can add some >> way to annotate synapse. >> >> In the longer run mostly synapse APIs will be generated out of swagger >> definitions thus having the ability to contain all the API definition >> information in the synapse file would be important. >> >> Thanks >> Jo >> >> >>> >>> Find the diff of these changes done to the Swagger definition at [4] >>> >>> To get the required information from the Rest API configuration we can >>> invoke RestApiAdminServices's getApiByName operation which returns the >>> following response [5] for an API created that has the PetStore resources. >>> We can identify the methods and uri-template and mappings from this >>> response. >>> >>> Please let know your thoughts. >>> >>> Thanks, >>> Maheeka >>> >>> [1] http://petstore.swagger.io/#/pet >>> [2] https://gist.github.com/maheeka/4eaedd2e2e0765959a4166865bf9adf9 >>> [3] https://gist.github.com/maheeka/ec23751f21d8d7d5abaa4f9130f233f2 >>> [4] https://www.diffchecker.com/xEu0NSNz >>> [5] <soapenv:Envelope xmlns:soapenv="http://schemas. >>> xmlsoap.org/soap/envelope/"> >>> <soapenv:Body> >>> <ns:getApiByNameResponse xmlns:ns="http://org.apache.axis2/xsd"> >>> <ns:return xsi:type="ax2476:APIData" xmlns:ax2476=" >>> http://api.rest.carbon.wso2.org/xsd" xmlns:xsi="http://www.w3.org/2 >>> 001/XMLSchema-instance"> >>> <ax2476:artifactContainerName xsi:nil="true"/> >>> <ax2476:context>/pet</ax2476:context> >>> <ax2476:fileName>PetstoreAPI.xml</ax2476:fileName> >>> <ax2476:host xsi:nil="true"/> >>> <ax2476:isEdited>false</ax2476:isEdited> >>> <ax2476:name>PetstoreAPI</ax2476:name> >>> <ax2476:port>-1</ax2476:port> >>> <ax2476:resources xsi:type="ax2476:ResourceData"> >>> <ax2476:contentType xsi:nil="true"/> >>> <ax2476:faultSeqXml xsi:nil="true"/> >>> <ax2476:faultSequenceKey xsi:nil="true"/> >>> <ax2476:inSeqXml xsi:nil="true"/> >>> <ax2476:inSequenceKey xsi:nil="true"/> >>> <ax2476:methods>POST</ax2476:methods> >>> <ax2476:methods>PUT</ax2476:methods> >>> <ax2476:outSeqXml xsi:nil="true"/> >>> <ax2476:outSequenceKey xsi:nil="true"/> >>> <ax2476:protocol>0</ax2476:protocol> >>> <ax2476:uriTemplate xsi:nil="true"/> >>> <ax2476:urlMapping>/</ax2476:urlMapping> >>> <ax2476:userAgent xsi:nil="true"/> >>> </ax2476:resources> >>> <ax2476:resources xsi:type="ax2476:ResourceData"> >>> <ax2476:contentType xsi:nil="true"/> >>> <ax2476:faultSeqXml xsi:nil="true"/> >>> <ax2476:faultSequenceKey xsi:nil="true"/> >>> <ax2476:inSeqXml xsi:nil="true"/> >>> <ax2476:inSequenceKey xsi:nil="true"/> >>> <ax2476:methods>POST</ax2476:methods> >>> <ax2476:methods>DELETE</ax2476:methods> >>> <ax2476:methods>GET</ax2476:methods> >>> <ax2476:outSeqXml xsi:nil="true"/> >>> <ax2476:outSequenceKey xsi:nil="true"/> >>> <ax2476:protocol>0</ax2476:protocol> >>> <ax2476:uriTemplate>/{petId}</ax2476:uriTemplate> >>> <ax2476:urlMapping xsi:nil="true"/> >>> <ax2476:userAgent xsi:nil="true"/> >>> </ax2476:resources> >>> <ax2476:statisticsEnable>false</ax2476:statisticsEnable> >>> <ax2476:tracingEnable>false</ax2476:tracingEnable> >>> </ns:return> >>> </ns:getApiByNameResponse> >>> </soapenv:Body> >>> </soapenv:Envelope> >>> >>> >>> Thanks, >>> >>> Maheeka Jayasuriya >>> Senior Software Engineer >>> Mobile : +94777750661 >>> >> >> >> >> -- >> >> -- >> *Joseph Fonseka* >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> >> mobile: +94 772 512 430 >> skype: jpfonseka >> >> * <http://lk.linkedin.com/in/rumeshbandara>* >> >> > > > -- > Jagath Ariyarathne > Technical Lead > WSO2 Inc. http://wso2.com/ > Email: [email protected] > Mob : +94 77 386 7048 > <http://wso2.com/signature> > -- Jagath Ariyarathne Technical Lead WSO2 Inc. http://wso2.com/ Email: [email protected] Mob : +94 77 386 7048 <http://wso2.com/signature>
TestApi.json
Description: application/json
TestApi.yaml
Description: application/yaml
<?xml version="1.0" encoding="UTF-8"?> <api xmlns="http://ws.apache.org/ns/synapse" name="TestApi" context="/t/abc.com/test" hostname="localhost" port="8280"> <resource methods="POST GET" url-mapping="/list/books" inSequence="seq3" outSequence="seq2"/> <resource methods="POST GET" url-mapping="/list/cds" inSequence="seq3" outSequence="seq2"/> <resource methods="GET" url-mapping="/users/*" inSequence="seq5" outSequence="seq2"/> </api>
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
