HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.
API V2 - No API Definition Provided
Vanilla 3.2
I'm not sure at what point this started happening, but when I click on API V2 in the dashboard, the panel says "No API Definition Provided"
In doing a little debug, the console shows:
GET http://<myUrl>/api/v2/open-api/v3 404 (Not Found).
What did I do this time 😣?
0
Comments
Try to fix it by re-uploading all files from 3.2 and deleting the contents of the /cache folder.
Thanks for the quick response.
I did as you suggested; no joy 🙁
Do you have pretty urls enabled? (i.e. "/discussions" instead of "index.php?p=/discussions"
Are there any JS errors in the console?
Pretty urls are enabled and console shown nothing but the 404 ...
I expanded the 404 in case that has anything helpful:
Thanks!
Also, here's a segment of config.php with the list of Applications and Plugins:
// EnabledApplications
$Configuration['EnabledApplications']['Conversations'] = 'conversations';
$Configuration['EnabledApplications']['Vanilla'] = 'vanilla';
$Configuration['EnabledApplications']['Yaga'] = 'yaga';
// EnabledPlugins
$Configuration['EnabledPlugins']['HtmLawed'] = false;
$Configuration['EnabledPlugins']['AddMenuitem'] = true;
$Configuration['EnabledPlugins']['EasyMembersList'] = true;
$Configuration['EnabledPlugins']['Emotify'] = false;
$Configuration['EnabledPlugins']['Gravatar'] = true;
$Configuration['EnabledPlugins']['LikeThis'] = false;
$Configuration['EnabledPlugins']['VanillaInThisDiscussion'] = true;
$Configuration['EnabledPlugins']['OnlineNow'] = true;
$Configuration['EnabledPlugins']['Pockets'] = true;
$Configuration['EnabledPlugins']['PrivateCommunity'] = true;
$Configuration['EnabledPlugins']['SplitMerge'] = true;
$Configuration['EnabledPlugins']['Tagging'] = true;
$Configuration['EnabledPlugins']['jsconnect'] = false;
$Configuration['EnabledPlugins']['cleditor'] = false;
$Configuration['EnabledPlugins']['EmojiExtender'] = true;
$Configuration['EnabledPlugins']['ButtonBar'] = false;
$Configuration['EnabledPlugins']['FileUpload'] = false;
$Configuration['EnabledPlugins']['editor'] = false;
$Configuration['EnabledPlugins']['aeConfig'] = false;
$Configuration['EnabledPlugins']['showAllEmojis'] = false;
$Configuration['EnabledPlugins']['Like'] = false;
$Configuration['EnabledPlugins']['Debugger'] = false;
$Configuration['EnabledPlugins']['DiscussionPolls'] = true;
$Configuration['EnabledPlugins']['recaptcha'] = true;
$Configuration['EnabledPlugins']['Linkout'] = true;
$Configuration['EnabledPlugins']['emojiextender'] = false;
$Configuration['EnabledPlugins']['rich-editor'] = true;
$Configuration['EnabledPlugins']['Quotes'] = false;
$Configuration['EnabledPlugins']['debugbar'] = false;
$Configuration['EnabledPlugins']['MembersListEnh'] = false;
I can pull version numbers for these if you need them.
I restored my pre-upgrade site and DB to a dev environment I created, so I started back at 2.6. I ran utility/structure and it found nothing significant.
Verified that the API Page was still showing end-points.
I ran through the version specific pre-upgrade steps, uploaded 3.2 and ran utility/upgrade (success).
I also ran utility/structure and all it showed was this:
I've run and re-scanned a couple of times. no change.
Not only am I once again getting "No API Definition Provided" in the API V2 Panel, but a problem that I experienced in my first upgrade attempt at this upgrade: Unknown column Active in field list. The offending table turned out to be the Media table and adding that column fixed it.
Running utility/structure did not identify this.
In the mean time it looks like someone else is experiencing the same issue. I'll see if they're having better luck than I am.
It almost feels like there is something not quite right either with the dist or with the upgrade instructions.
One positive: I have a test environment now so I should never find myself in this position again.
@R_J Thanks again for your help and if you have any other thoughts, I'm all ears.
Try adding this line to your conf/config.php:
I'm confused. That plugin isn't shown in your list above (therefore I thought you need to enable it), but without it you shouldn't be able to see the link in the dashboard...
By the way: if you suspect that one of the plugins above is a problem, you should disable them and try again. But I wouldn't know why one of them should prevent the API from working.
When you put this in the address bar of your browser, do you also get the 404: http://<myUrl>/api/v2/open-api/v3
And what about other end points: http://<myUrl>/api/v2/open-api/v2
All folders must be accessible by the web server and in this case the file /applications/dashboard/controllers/api/OpenApiApiController.php is used. That must also have correct access rights.
But beyond that I'm out of ideas.
@R_J -
http://<myUrl>/api/v2/open-api/v3 yields a 404 (even after I added that line to the config).
http://<myUrl>/api/v2/open-api/v2 yields a response with a lot of json which probably would generate the panel.
If I read that other post correctly, the api itself works; it's the configuration page that's broken.
Thanks for trying. I'm sure this will get sorted in a future release.
jp