Как получить доступ к конечным точкам API REST для Bluemix

Я следил за статьей IBM Blumix «Создание и развертывание REST API в IBM Bluemix с помощью PHP и MySQL». http://www.ibm.com/developerworks/library/wa-deployrest-app/index.html

Однако он никогда не говорит, как получить доступ к фактическим конечным точкам (я думаю, что использую правильное слово). В нем говорится, что нужно вызвать «/v1/products», чтобы получить список всех продуктов. Я очень новичок в bluemix и не совсем уверен, к чему добавить «/v1/products». Должен ли я добавить его, чтобы сделать «>projectName‹.mybluemix.net/v1/products»? Это не работает. я получаю сообщение об ошибке

"Не обнаружена

Запрошенный URL-адрес /v1/products не найден на этом сервере».

Ваше здоровье


person Lonely Vagrant    schedule 07.05.2015    source источник


Ответы (1)


Если вы следили за статьей developerWorks, вы должны просто получить доступ к конечной точке, выполнив вызов GET (то есть просто добавив это в веб-браузер) по этому URL-адресу:

your_app_route.mybluemix.net\v1\products

или если вы развернули в регионе Великобритании (eu-gb), тогда URL-адрес:

your_app_route.eu-gb.mybluemix.net\v1\products

затем добавьте .xml или .json к этому URL-адресу для желаемого типа ответа. Конечная точка определена в коде вашего приложения, и из статьи на developerWorks она установлена ​​в коде PHP на данный момент:

 $app->path('v1', function($request) use ($app) {

    $app->path('products', function($request) use ($app) { 


    // GET /v1/products[.xml|.json]
    // list all products
    $app->get(function() use ($app)  {

      $products = Product::all();         

      // handle requests for XML content
      $app->format('xml', function($request) use($app, $products) {
        return $app->response(200, convert_array_to_xml($products->toArray()))
                      ->header('Content-Type', 'application/xml');
      });

      // handle requests for JSON content
      $app->format('json', function($request) use($app, $products) {
        return $products->toArray();
      });

your_app_route — это имя маршрута/узла, которое вы можете определить при выполнении команды cf push. Если вы не зададите этот маршрут явно (параметр -n или параметр --random-route), то он будет установлен на имя вашего приложения Bluemix. Вы можете увидеть, что такое URL-адрес, взглянув на консоль пользовательского интерфейса Bluemix для вашего приложения (должна быть вверху страницы) или взглянув на конец команды cf push, где написано urls:

Судя по ошибке, которую вы получаете, похоже, что приложение запускается, но веб-сервер не направляет запросы в модуль Bullet. Возможно, вы захотите проверить правильность выполнения шага 8(b).

person whitfiea    schedule 07.05.2015
comment
Я вернулся и выполнил шаг 8 (б), который я ранее пропустил, потому что думал, что речь идет о локальной тестовой среде. После того, как я выполнил 8(b) и попытался получить доступ к uri products-api-111.mybluemix. net/v1/products я ничего не получаю взамен, только пустую страницу. В учебнике используется mySQL. Однако я использую базу данных SQL, которая использует DB2. Мне пришлось изменить запросы для создания и вставки данных. У меня есть таблица PRODUCTS с парой строк данных, поэтому я не уверен, что это проблема. - person Lonely Vagrant; 07.05.2015
comment
когда вы сказали добавить .json к URL-адресу, вы имели в виду что-то вроде products-api- 111.mybluemix.net/v1/products.json ? - person Lonely Vagrant; 07.05.2015
comment
Не совсем уверен, что это значит, я думаю, может быть, я ошибся с базой данных. Я использую базу данных SQL вместо mySQL. Имя таблицы моей базы данных автоматически стало заглавным, когда я думаю, что оригинал должен быть строчным. Итак, у меня ПРОДУКТЫ, а в оригинальном MySQL это просто продукты. - person Lonely Vagrant; 07.05.2015
comment
Вот код ошибки: FAILED Ошибка набора номера сервера диспетчера трафика: Get doppler.ng.bluemix.net:443/apps/: наберите tcp 75.126.70.44:443: ConnectEx tcp: попытка подключения не удалась, так как подключенная сторона не ответила должным образом через некоторое время, или установить соединение не удалось, поскольку подключенный хост не ответил. Попросите вашего оператора Cloud Foundry проверить конфигурацию платформы (конечная точка контроллера трафика — wss://doppler.ng.bluemix.net:443). - person Lonely Vagrant; 07.05.2015
comment
Как я могу клонировать или скачать этот репозиторий. Нет ни ссылки, ни кнопки скачать. hub.jazz.net/project/vvaswani/products-api/overview#< /а> - person Lonely Vagrant; 07.05.2015
comment
Ошибка «doppler» связана со службой ведения журналов, а не с вашей собственной, вы можете спокойно игнорировать их (хотя это потенциально означает, что вы можете пропустить информацию журнала). Репозиторий, на который вы ссылаетесь, основан на SCM, а не на git, поэтому вам нужно будет нажать «настроить клиент eclipse», чтобы получить код в eclipse с помощью плагина RTC. Другой вариант — выбрать опцию «редактировать код», разветвить код, а затем использовать IDE браузера для изменения кода. - person whitfiea; 07.05.2015
comment
Я разветвил его и смог загрузить, выбрав Файл->Экспорт в онлайн-браузере. Уже поздно, попробую утром. Если это все еще не работает, я склонен думать, что проблема в моей базе данных. Есть ли у вас какие-либо ресурсы по созданию API для отдыха в bluemix? И большое спасибо за вашу помощь. я очень ценю это - person Lonely Vagrant; 07.05.2015
comment
онлайн-браузер *face palm. * Браузерная среда разработки - person Lonely Vagrant; 07.05.2015