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 😣?

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.

  • edited September 2019

    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:

    update `GDN_User` `User`
    set `Permissions` = ''
    where `Permissions` <> '';
    
    insert `GDN_UserMeta` 
    (`UserID`, `Name`, `Value`) 
    values ('0', 'stubcontent.record.locale', 'en');
    

    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:

    $Configuration['EnabledPlugins']['swagger-ui'] = true;
    
  • 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

Sign In or Register to comment.