Closed jonathanvila closed 3 years ago
@jonathanvila Thanks for this PR, here are some questions I'd like to be addressed:
- The response of
GET /assessments/risks?applications=1
doesn't keep the order defined by "Category[order]" and Question[order]. Is it possible to sort the response so it keeps the original Categories and Questions order? :+1:
- In
GET /assessments/risks?applications=1
: could we change the QueryParam nameapplications
byapplicationId
? we need to keep consistency with the other endpoints; all the other endpoints are using eitherassessmentId
orapplicationId
as Query params. Good idea.
- We are using QueryParams for setting the list of applications so that info is used within the URL. We need to keep in mind that a URL's length is not unlimited. The info I've found is that a REST URL can be defined as up to 4096 characters which means only around 292 applications can be processed at a time: the queryParam is
applications=1 (14 characters)
=> 4096/14=292.57 . I suppose this is a question for @PhilipCattanach : How many applications at a single time we are going to process? If the number is big, then it might be better to change thereview
endpoint to aPOST request
and sending the list of application within the body, but as I mentioned this really depends on how many apps we expect to process.- If the answer of "how many apps we are going to process at a time?" is "big numbers of apps" then it might be better to implement pagination in the backend for this endpoint; otherwise, let's keep it as it is and the UI can manage the pagination.
Yep, that's definitely a problem with all reports involving Applications. And this is one of them. I haven't changed the way the list is passed to the endpoint to make very CLEAR that this approach has a lot of problems. If the user can send hundreds/thousands of applications to the endpoint the problem is not if we pass them by Query String or Body, the problem is how the user can select manually hundreds/thousands of applications ( UI paginating every 25 elements ? how to decide which apps to include and which not : based on app name ? considering that one user entered the apps and another weeks later is asking reports , also everytime an user wants a report needs to send hundreds of apps ?... etc ) I think all of this has to be re-consider not using the individual application as an element to be requested but something that groups them and is easy to identify by an user.
Thanks @jonathanvila . This PR looks good to me.
Issue : https://github.com/konveyor/tackle-pathfinder/issues/47
Features covered
Unit , Integration and End2End Tests cases covered
Pre steps Minikube:
Add this below
paths:
Test case with Minikube : Do the full API test
Pre steps non containerised local test:
Test case with local non containerised : Do the full API test