JMP 14의 경우, 새로운 HTTP 요청 JSL에서 발견 된 개체. 이 API를 발견했습니다. http://api.citybik.es/v2/ .
이 웹 서비스는 전 세계의 도시 자전거 데이터 (및 가용성)를 찾는 데 사용할 수 있습니다. 그것은 단지 두 개의 끝점을 가지고 있습니다. http://api.citybik.es/v2/networks 과 http://api.citybik.es/v2/networks/[id ] 그래서 작업하기에 꽤 간단한 Rest API입니다. 그러나 웹 사이트로 보내도록 HTPP 요청 객체를 구성하는 방법과 그 정보를 처리하는 방법이 핵심입니다. (정보 처리는 원하는만큼 참여할 수 있습니다.)
request = New HTTP Request(URL("http://api.citybik.es/v2/networks"), Method("Get"));
json = request << Send();
이것은 첫 번째 끝점에서 데이터를 가져 오는 데 필요한 모든 것입니다. json은 API에서 반환되는 데이터입니다. 이 웹 서비스를 알고 있기 때문에 필자가 반환해야하는 데이터는 Character이며 JSON입니다. 그냥 확인해 보겠습니다.
!IsEmpty(json)
그러나 다음과 같이 반환 된 성공 및 mimetype을 확인할 수 있습니다.
request << Is Successful
request << Get Mime Type == "application/json"
스크립트에서 생성 된 초기 JMP 데이터 테이블은 City Bikes Network 테이블입니다.
첫 번째 끝점에서 반환 된 json 데이터를 사용하여 만듭니다. 반환 된 데이터를 처리 할 수있는 방법은 두 가지가 있습니다. 첫 번째는 :
JSON to Data Table(json)
그러면 데이터에서 JMP 데이터 테이블을 만들려고 시도합니다. "직사각형"또는 "탭luar"데이터의 경우이 방식이 실제로 잘 작동합니다 (그리고 빠름). 그러나 모든 웹 서비스가 표 형식의 데이터를 반환하는 것은 아닙니다 (도시 자전거는 그렇지 않습니다). 이것은 반환 된 데이터를 처리하는 두 번째 방법을 제공합니다.
Parse JSON(json)
이렇게하면 JSL 연관 배열이 만들어집니다. 즉, JSL에서 JSON을 직접 파싱 할 필요는 없지만 데이터가 어떻게 구성되는지 알아야합니다. 그게 핵심인지 알아야합니다 => 값 쌍 또는 키 => 가치 쌍. 이것은 원시 json 출력을 다음과 같이 캡처 할 수 있기 때문에 그렇게 어렵지 않습니다.
write(json);
로그에서 원하는 json 포맷터에 붙여 넣으십시오. (Chrome에서 JSON 편집기 온라인 앱 사용). 이것은 다음과 같은 것을 의미합니다 :
{
"networks": [
{
"company": [
"Bike U Sp. z o.o."
],
"href": "/v2/networks/bbbike",
"id": "bbbike",
"location": {
"city": "Bielsko-Bia\u0142a",
"country": "PL",
"latitude": 49.8225,
"longitude": 19.044444
},
"name": "BBBike"
},
...
...
}
다음과 같이 표시 할 수 있습니다.
object {1}
networks {560}
0 {5}
company [1]
0 : Bike U Sp. z o.o
href: /v2/networks/bbbike
id: bbbike
location {4}
city: Bielsko-Biaia
country: PL
latitude: 49.8225
longitude: 19.044444
name: BBBike
...
...
다른 말로하면, [...] JSON Editor Online에서는 JSL Array를 다루고 있습니다. 당신이 볼 때 {...} , 당신은 JSL Associative Array를 다루고 있습니다.
스크립트에 대해 한 가지 더 메모하려면 다음을 사용하십시오.
Set Property("Event Handler", ...
따라서 다음 엔드 포인트로 드릴 다운 할 수 있습니다.
회사 열에서 하이퍼 링크를 클릭하면 회사 아이디 같은 행에 url로 새 HTTP 요청을 작성하십시오.
"http://api.citybik.es/v2/networks/" || thisTable:company_id[iRow]
이를 통해 City Bike 회사에 대한 자세한 정보를 얻을 수 있으며 이전과 동일한 프로세스를 사용하여 다른 JMP 데이터 테이블을 만들 수 있습니다.
그래프 빌더를 사용하여 JSL에 샘플 테이블 스크립트를 두어 만들었습니다.
밖에 많은 더 많은 Rest API가 있으므로 마음껏 사용해보십시오.
즐겨,
브라이언 분