Hi All, We have been working on a testing console for the API Publisher. The main > intention of this feature is that the developer(creator, publisher) can > make sure that the API is working as expected by performing functional > tests before publishing to the dev portal. > For example, test the mediation policies, check whether the API response > comes from the expected back end, test the request parameters are compliant > with the defined schema. > > By considering the functionalities, we decided to re-use the prototype > life-cycle state. In fact, if a developer triggers a test, the particular > API is deployed as a prototype and in addition to that, a new RXT field( > *enableStore*) is set to false so that the specific testing API is > restricted to the dev portal. Afterwards, if the API is either published or > deployed as a prototype, the *enableStore *should be set to true. > The APIsGet query should be changed as below. > > name=*&enableStore=true&lcState=(PUBLISHED OR PROTOTYPED) > > Furthermore, another concern is the lifecycle state that will show in the > publisher lifecycle state diagram. So we came up with two approaches to > show the state. >
Moreover, if an API is in a published state, we planned to restrict the testing capability. As usual, he/she has to demote to the created state and initialize the test. Highly appreciate your insights on the following 2 approaches. > > 1.i) Keep two subtypes of the prototype state like *prototype* > and *prototype(testing)*. If it's a normal prototype(visible to store), > it will be shown as a prototype. If the enableStore property is set to > false and lcstate is a prototype, the state should be changed as the > prototype(testing). The below diagram depicts the flow. > > ii) Moreover, we can internally deploy the API as a prototype > without intentionally saying this API is deployed as a prototype and keep > the same state as created. Even though the lifecycle shows the API is in a > created state, the synapse artefacts are created. This might be an issue > as we can't clearly define our statuses. > > > > > > [image: console.png] > > 2. Create a pop-up window to carry on the tests functionalities. When a > developer clicks on the testing pop up window, the API is deployed as a > prototype and all the other details are hidden until the developer closes > the window by finishing the testing phase. Once he/she closes the window, > API should be automatically demoted to the created state and developer > should be able to carry on his/her tasks without affecting the user > experience. > If we go ahead with this approach, we have to handle the clearing the > artefacts with pinpoint accuracy otherwise it might lead to several issues > at prod environments. > > If we can go with 1 i) approach, it would make a minor effect on the basic > flow. Highly appreciate your suggestions and concerns regarding this. > > > Regards, > Hasunie > > > > > > > -- > *Hasunie Adikari* > Associate Technical Lead > WSO2 Inc.; http://wso2.com > lean.enterprise.middleware > blog http://hasuniea.blogspot.com | https://medium.com/@Hasunie/ > Mobile:+94713095876 > > -- *Hasunie Adikari* Associate Technical Lead WSO2 Inc.; http://wso2.com lean.enterprise.middleware blog http://hasuniea.blogspot.com | https://medium.com/@Hasunie/ Mobile:+94713095876
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
