2015-05-07 5 views
1

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

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

«не найден

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

Приветствия

ответ

4

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

your_app_route.mybluemix.net\v1\products

или если вы развертывается в (ес-гб) региона Великобритании, то есть 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) выполнен правильно.

+0

Я вернулся и завершил шаг 8 (б) Я ранее пропустил его, потому что думал, что речь идет о локальной тестовой среде. После того как я завершил 8 (б) и попытался получить доступ к uri http://products-api-111.mybluemix.net/v1/products, я ничего не получил взамен, просто пустую страницу. В учебнике используется mySQL. Однако я использую базу данных SQL, которая использует DB2. Я должен был изменить запросы для создания и вставки данных. У меня есть таблица под названием ПРОДУКЦИЯ с несколькими рядами данных, поэтому я не уверен, что это будет проблемой. –

+0

Когда вы сказали добавить .json к URL-адресу, вы имели в виду что-то вроде http://products-api-111.mybluemix.net/v1/products.json? –

+0

да http://products-api-111.mybluemix.net/v1/products.json - это то, что я имею в виду. Это должно вернуть данные в формате json, который вы сможете увидеть в веб-браузере. Вы можете посмотреть журналы своего приложения, чтобы узнать, почему он ничего не возвращает, и при необходимости добавить больше журналов. 'cf logs yourappname --recent' - это команда, используемая для просмотра последней информации журнала потока. – whitfiea

Смежные вопросы