Fixes several error messages when installing an app from the appstore, including:
```
Illegal offset type in isset or empty at /media/psf/stable9/lib/private/legacy/app.php#662
Illegal offset type at /media/psf/stable9/lib/private/legacy/app.php#663
Illegal offset type at /media/psf/stable9/lib/private/legacy/app.php#661
Object of class OC_App could not be converted to string at /media/psf/stable9/lib/private/legacy/app.php#81
trim() expects parameter 1 to be string, object given at /media/psf/stable9/lib/private/legacy/app.php#628
```
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This enforces proper types on POST and GET arguments where I considered it sensible. I didn't update some as I don't know what kind of values they would support 🙈
Fixes https://github.com/owncloud/core/issues/14196 for core
Otherwise every time the AppStore was opened a lot of connections to the AppStore server were made which resulted in a terrible performance.
This changeset will cache the response for a sensible time so that only the first request will be somewhat slow.
Performance changes:
- Loading a category took previously more than 3 seconds on my machine. Now for every follow-up request it takes less than 200ms, resulting in a performance gain of 1950%
- Loading the category list took previously about 750ms - now it takes 154ms, a total performance gain of 395%
`OC_JSON::success` and `OC_JSON::error` are calling
`OC_JSON::encodedPrint`, which already sets these headers. So this two
calls are uneeded duplicates.