メモ: FIWARE

## 便利ツール

* EdgeやChrome拡張機能の [Yet Another REST Client
](https://chrome.google.com/webstore/detail/yet-another-rest-client/ehafadccdcdedbhcbddihehiodgcddpl/related) が便利だった。
* [JSON整形・リント - オンライン上のJSON整形・構文チェックツール | Web ToolBox](https://web-toolbox.dev/tools/json-formatter)
* jqとcurlをよく使うので、[jqは公式HPからダウンロード](https://stedolan.github.io/jq/)、[curlはbusyboxのもの](https://frippery.org/busybox/) だと辛いものがあった。


## 何から始めればよいか？

![FIWAREフロー.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/2e9e5365-5944-da98-4902-2619c8a4a44a.png)

* [fiware-handson-1.pdf](https://documents.fiware-testbed.jp/file/fiware-handson-1.pdf)より。

* 8ページ目

![8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/8e80a03a-f024-6cbc-9ab6-e024ccb9f26a.png)

* 14ページ目

![14p.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/d1bf226c-35bc-7b86-92b8-6cd89d34359a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/6469e6ff-7084-d6fc-6204-94e824dfb287.png)


## ドキュメント

* https://fiware-tutorials.letsfiware.jp/Getting-Started/

```sh
git clone https://github.com/FIWARE/tutorials.Getting-Started.git
cd tutorials.Getting-Started
git checkout NGSI-v2
```

```sh
cd NGSI-v2
tutorials.Getting.Started
./service start
```

## Orionの操作をするにはPostmanを利用します。

https://www.postman.com/fiware/workspace/fiware-foundation-ev-s-public-workspace/overview


## 通信ポート

* Orion : 1026
* MongoDB : 27017

## 起動 (Dockerコマンドの場合)

```sh:mongoDBの起動
docker run -d \
 --name=mongo-db \
 --expose=27017 \
 mongo:latest --bind_ip_all
```

```sh:Orionの起動
docker run -d \
 -p 1026:1026 \
 --link mongo-db:mongo-db \
 fiware/orion -dbhost mongo-db
```

```sh
# curl で通信確認
curl -X GET 'http://localhost:1026/version'
```

## 起動 (docker-composeの場合)

```yaml:docker-compose.yml
orion:
  image: fiware/orion
  links:
    - mongo
  ports:
    - 1026:1026
  command: -dbhost mongo

mongo:
  image: mongo
  command: --nojournal
```

```sh:起動
docker-compose up -d
```

```sh
# curl で通信確認
curl -X GET 'http://localhost:1026/version'
```


## postman

* WEBからAPIをたたける
    * https://app.getpostman.com/run-collection/fb5f564d9bc65fc3690e
    * [ShortCuts](https://blog.postman.com/speeding-up-workflows-with-keyboard-shortcuts/)


* 環境変数 {{orion}} の設定

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/32026aad-6f11-b2e3-3153-2743428be10f.png)

* 応答があることを確認

![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/95bc73ac-4bc6-9967-6e3f-6781b54e21d5.png)

`Control + Enter` で `Send`ボタンを押下できる。

## MongoDB 管理ツール

https://github.com/mongo-express/mongo-express

```sh:mongo-express
docker run -it --rm \
  --network fiware_default \
  -e ME_CONFIG_MONGODB_SERVER=db-mongo \
  -e ME_CONFIG_OPTIONS_READONLY=true \
  -e ME_CONFIG_OPTIONS_NO_DELETE=true \
  -p 8081:8081 mongo-express
```

* network名は `docker network ls`を使う。
* MongoDB名は `docker ps | grep -i mongo` で調べられる。

----


## WireCloud

```sh
# -e DEBUG=True が必ず必要。謎
docker run -p 8000:8000 -d \
 --name wirecloud \
 --network fiware_default \
 -e DEBUG=True \
 fiware/wirecloud
```

https://qiita.com/tukiyo3/items/c6f5655fbd5becdc7e8b

https://github.com/Wirecloud/docker-wirecloud/issues/64


## データー形式

```json
"id": "urn:ngsi-ld:Store:001"
"id": "urn:ngsi-ld:Store:002"
```

のように一意のurn値の必要がある。