Noodl로 HTTP 통신
스웨덴의 원형 공구 Noodl을 만져봤어요.
HTTP 통신
HTTP 통신도 그걸 해볼 수 있으니까.
일기예보 API 사용
https://openweathermap.org/api
※ 사전에 sign up, API 키를 획득해야 합니다.
절차.
1. REST 노드 구성
/forecast
GET
http://api.openweathermap.org/data/2.5
define({
// The input ports of the REST node, name of input and type
inputs:{
apiKey:'string',
city: 'string'
},
// The output ports of the REST node, name of output and type
outputs:{
city:'string',
country:'string',
weather:'string',
lat:'number',
long:'number',
windangle:'number',
windspeed:'number',
temperature:'number',
humidity: 'number'
},
//Add custom code to setup the request object before the request
//is made.
//
//*request.resource contains the resource path of the request.
//*request.method contains the method, GET, POST, PUT or DELETE.
//*request.headers is a map where you can add additional headers.
//*request.parameters is a map the parameters that will be appended
// to the url.
//*request.content contains the content of the request as a javascript
// object.
//
// The inputs and outputs maps can also be accessed via *this.inputs and
// *this.outputs.
request:function(inputs,request) {
request.parameters.APPID = inputs.apiKey;
request.parameters.q = inputs.city;
request.parameters.v = inputs.country;
},
// Add custom code to convert the response content to outputs
//
//*response.status The status code of the response
//*response.content The content of the response as a javascript
// object.
//*response.request The request object that resulted in the response.
//
// The inputs and outputs maps can also be accessed via *this.inputs and
// *this.outputs.
response:function(outputs,response) {
outputs.city = response.content.city.name;
outputs.country = response.content.city.country;
outputs.lat = response.content.city.coord.lat;
outputs.long = response.content.city.coord.lon;
outputs.weather = response.content.list[2].weather[0].description;
outputs.windangle = response.content.list[2].wind.deg;
outputs.windspeed = response.content.list[2].wind.speed;
outputs.temperature = response.content.list[2].main.temp;
outputs.humidity = response.content.list[2].main.humidity;
}
})
openweathermapのkey
tokyo
temperature
tap here
Tap
Fetch
temperature
text
화면을 클릭하면 숫자가 나와요.
이 API는 섭씨도 화씨도 아닌 켈빈으로 돌아왔기 때문에 가격에 착오가 없다.
여기서부터 진짜 정점이에요.
Noodl의 흥미로운 것은 js도 움직인다는 것이다.
따라서 js에서는 켈빈을 섭씨(℃)로 변환한다.
5. js의 노드를 추가하여 다음 코드를 쓴다
run에서 단위를 바꾸는 코드입니다.
단순히 inputs의 켈빈을 섭씨로 변환한 다음outputs로 되돌아간다.
define({
inputs: {
kelvin: "string"
},
outputs: {
result: "string"
},
destroy: function(inputs, outputs) {
},
setup: function(inputs, outputs) {
},
run: function(inputs, outputs, changedInputs) {
if (inputs.kelvin !== undefined) {
let kelvinNum = Number(inputs.kelvin);
let degree = (kelvinNum - 273.15).toFixed(2);
outputs.result = String(degree);
} else {
outputs.result = 'Tap Here !!'
}
}
});
6. 연결temperature
kelvin
result
text
망했다
JS를 쓰면 이미 뭐든지 갈 수 있어 대단해.
다음번
Noodl로 맞춰봐. - Qita.
Reference
이 문제에 관하여(Noodl로 HTTP 통신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryusukefuda/items/0a9317ed3f8db50b1b1e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)