ArangoDB: начало работы с Foxx Microservices: 404: errorMessage: неизвестный путь - PullRequest
0 голосов
/ 18 декабря 2018

Используя документацию ArangoDB версия 3.3 или версия 3.4 для раздела Начало работы на Foxx Microservices, я не могу обойти эту ошибку:

Failed to load API definition.

NetworkError when attempting to fetch resource. http://192.168.1.1:8529/_db/_system/_admin/aardvark/foxxes/docs/swagger.json?mount=/getting-started

Эта ошибка отображается на вкладке API службы.После установки моего сервиса в соответствии с руководством я получаю карточку сервиса, как описано.Я щелкаю эту карту, а затем нажимаю вкладку API, и отображается вышеуказанная ошибка.

Чтобы устранить опечатки, я попытался скопировать и вставить точное содержимое файла из документации ArangoDB и точно выполнять каждый шаг, и я все еще продолжаюполучить ту же ошибку.

Вкладка «Информация» моего недавно созданного сервиса getting-started содержит эту информацию:

Автор:
Монтирование: / Getting-Start
Режим: Разработка
Версия: Неизвестная
Версия Лицензия: Неизвестная Лицензия
Путь: / var / lib / arangodb3-apps / _db / _system / Getting-Start / APP

Примерсодержит только два файла:

manifest.json

{
  "engines": {
    "arangodb": "^3.0.0"
  },
  "main": "index.js"
}

index.js

'use strict';
const createRouter = require('@arangodb/foxx/router');
const router = createRouter();

module.context.use(router);

router.get('/hello-world', function (req, res) {
res.send('Hello World!');
})
.response(['text/plain'], 'A generic greeting.')
.summary('Generic greeting')
.description('Prints a generic greeting.');

Консервированные демонстрационные сервисы, такие как пример hello-foxРаботай правильно.Я собрал больше информации об ошибках:

Переход к http://192.168.1.1:8529/getting-started

404: errorMessage "неизвестный путь" / Getting-Start '"

Переход кhttp://192.168.1.1:8529/_db/_system/getting-started

404: errorMessage "неизвестный путь" / Getting-Start '"

Консоль также показывает:

WARNING File not found "/getting-started": file "" does not exist in "/var/lib/arangodb3-apps/_db/_system/getting-started/APP/files".

Учебное пособиене указывает другой файл с именем getting-started или другое местоположение для двух указанных файлов.Чего мне не хватает?

1 Ответ

0 голосов
/ 21 декабря 2018

Эта проблема была решена на основе полезных комментариев @ camba1.С Аранго не было никаких проблем, только проблема со мной в понимании учебника.Для тех, кто находится на моем месте, есть вещи, которые я не понимал должным образом, и которые, если их решить, помогли решить мои проблемы.

  1. В отличие от того, что говорится в руководстве, вкладка APIвыдает ошибку «Не удалось загрузить определение API» даже для правильно работающей службы.Игнорируйте это сообщение об ошибке.Я еще не использую вкладку API.

  2. учебник относится к двум путям, '/ hello-world' и '/ Getting-Start'.Они используются в конечной точке (URI) и при создании маршрутизатора, как показано ниже:

    router.get('/hello-world', function (req, res) { ...

Учебное пособие было не таким ясным, как могло бы бытьв этот момент, но, как указал @ camba1, конечная точка службы будет включать оба этих элемента:

192.168.1.1:8529/_db/_system/getting-started/hello-world .

эта очень простая демонстрация проще и лучше, на мой взгляд, когда маршрутизатор создается без пути:

router.get(function (req, res) {

В этом случаепо умолчанию используется путь «/».Я думаю, что это может избежать путаницы для начинающих, таких как я.Конечная точка службы становится проще на один элемент.В моем случае конечная точка (с Аранго, работающим на другом компьютере в локальной сети) становится:

192.168.1.1:8529/_db/_system/getting-started

Учебное пособие будет улучшено, если будет добавлено несколько дополнительных предложений, объясняющих, как создается конечная точка, илив качестве альтернативы, сделал, как я предложил выше, и упростил все на один шаг.

...