-
Notifications
You must be signed in to change notification settings - Fork 440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IdentifyApi Refactored #2083
IdentifyApi Refactored #2083
Conversation
Issue: wso2/api-manager#1564 (cherry picked from commit f0010ed)
* @param synCtx MessageContext object | ||
* @return Whether the provided resource is bound to the provided message context | ||
*/ | ||
public static boolean isBound(Resource resource, MessageContext synCtx) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make it private
for (API api : duplicateApiSet) { | ||
if (identifyAPI(api, synCtx, defaultStrategyApiSet)) { | ||
API identifiedApi = (API) synCtx.getProperty(RESTConstants.IDENTIFIED_API); | ||
//If normal path this goes to else, if logging enabled then goes inside the if method. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This logic is not clear to me, can you please explain?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the api logging flow in the first iteration it needs to identify the api. For that it calls the identifyApi()
method. If the api is identified then that api gets stored in the IDENTIFIED_API property. Then in the second iteration, we do not need to identify the api again. Therefore we get the identified api from the from the IDENTIFIED_API property. So we do not need to iterate all the apis in the duplicateApiSet to identify the api.
But if the api logging is disabled then api is not identified previously, therefore IDENTIFIED_API property is null, So the api needs to be identified by iterating all the apis in the defaultStrategyApiSet.
…card_master Set New Buffer for Error Responses in Pipe
} | ||
} | ||
|
||
if(synCtx.getProperty(RESTConstants.IDENTIFIED_API) != null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the reason for removing the property?
Closing since the relevant changes are added from #2150 |
This PR refactored the
identifyApi()
method. Now the api identification logic is taken from thecanProcess()
method to the newly createdidentifyApi()
method. PreviousidentifiyApi()
method was renamed tostartProcess()
method.Related Issue: wso2/api-manager#1564