Неустранимая ошибка: неподдерживаемый тип носителя: запрос neo4j через php / graphaware - PullRequest
0 голосов
/ 17 марта 2020

Я начинаю с небольшого домашнего проекта с использованием Neo4J и кодирую в PHP.

Я установил пару Docker контейнеров, используя следующий файл yml:

services:
  neo4j:
    build: ./
    image: neo4j:latest
    volumes:
      - $HOME/Documents/GitHub/engine/neo4j/data:/data
      - $HOME/Documents/GitHub/engine/neo4j/logs:/logs
      - $HOME/Documents/GitHub/engine/neo4j/import:/var/lib/neo4j/import
      - $HOME/Documents/GitHub/engine/neo4j/plugins:/plugins
    ports:
      - "7474:7474"
      - "7687:7687"
    restart: always
    environment:
      NEO4J_AUTH: neo4j/test
      NEO4J_default_listen_address: 0.0.0.0
  apache-php:
    depends_on:
      - neo4j
    build: ./
    image: php:7.2-apache
    volumes:
      - $HOME/Documents/GitHub/engine/php:/var/www/html
    ports:
      - "80:80"
    restart: always
volumes:
  neo4j-data:
    driver: local
  neo4j-logs:
    driver: local
  neo4j-import:
    driver: local
  neo4j-plugins:
    driver: local
  php:
    driver: local

У меня есть простой индекс. php, который должен соединиться, выполнить простой запрос и вернуть результаты:


require __DIR__.'/vendor/autoload.php';

use GraphAware\Neo4j\Client\ClientBuilder;

$client = ClientBuilder::create()
    ->addConnection('default', 'http://neo4j:test@neo4j:7474') // Example for HTTP connection configuration (port is optional)
    ->build();

$
$query = 'MATCH (n:Person)-[:FOLLOWS]->(friend) RETURN n.name, collect(friend) as friends';
$result = $client->run($query);

foreach ($result->getRecords() as $record) {
    echo sprintf('Person name is : %s and has %d number of friends', $record->value('name'), count($record->value('friends')));
}
?>

Но при загрузке индекса. php Я получаю следующую ошибку :

Fatal error: Uncaught Http\Client\Common\Exception\ClientErrorException: Unsupported Media Type 
in /var/www/html/vendor/php-http/client-common/src/Plugin/ErrorPlugin.php:72 Stack trace: #0 
/var/www/html/vendor/php-http/client-common/src/Plugin/ErrorPlugin.php(54): 
Http\Client\Common\Plugin\ErrorPlugin-
>transformResponseToException(Object(GuzzleHttp\Psr7\Request), Object(GuzzleHttp\Psr7\Response)) 
#1 /var/www/html/vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php(34): 
Http\Client\Common\Plugin\ErrorPlugin->Http\Client\Common\Plugin\{closure}
(Object(GuzzleHttp\Psr7\Response)) #2 /var/www/html/vendor/php-http/client-
common/src/Plugin/ErrorPlugin.php(55): Http\Client\Promise\HttpFulfilledPromise-
>then(Object(Closure)) #3 /var/www/html/vendor/php-http/client-common/src/PluginClient.php(161): 
Http\Client\Common\Plugin\ErrorPlugin->handleRequest(Object(GuzzleHttp\Psr7\Request), 
Object(Closure), Object(Closure)) #4 /var/www/html/vendor/php-http/client-
common/src/PluginClient.php(175): Http\Client\Common\PluginClient->H in 
/var/www/html/vendor/php-http/client-common/src/Plugin/ErrorPlugin.php on line 72

Я могу подключиться к базе данных Neo4J через веб-клиент по умолчанию на локальном хосте: 7474 и выполнить запрос в соответствии с требованиями с правильными результатами.

Я следил за найденной информацией здесь: https://github.com/graphaware/neo4j-php-client

Есть какие-нибудь указатели на то, что не хватает? Ta

...