Skip to content
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

Closed
wants to merge 8 commits into from
Closed

IdentifyApi Refactored #2083

wants to merge 8 commits into from

Conversation

shnrndk
Copy link
Contributor

@shnrndk shnrndk commented Jul 12, 2023

This PR refactored the identifyApi() method. Now the api identification logic is taken from the canProcess() method to the newly created identifyApi() method. Previous identifiyApi() method was renamed to startProcess() method.
Related Issue: wso2/api-manager#1564

* @param synCtx MessageContext object
* @return Whether the provided resource is bound to the provided message context
*/
public static boolean isBound(Resource resource, MessageContext synCtx) {
Copy link
Contributor

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.
Copy link
Contributor

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?

Copy link
Contributor Author

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.

rmsamitha pushed a commit to rmsamitha/wso2-synapse that referenced this pull request Sep 19, 2023
…card_master

Set New Buffer for Error Responses in Pipe
}
}

if(synCtx.getProperty(RESTConstants.IDENTIFIED_API) != null) {
Copy link
Contributor

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?

@arunans23
Copy link
Member

Closing since the relevant changes are added from #2150

@arunans23 arunans23 closed this Jul 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants