본문 바로가기
Today I Learned

Fetch 사용하기!

by rinny01 2024. 12. 18.
반응형

fetch 기본 골격

fetch("여기에 URL을 입력")
// 이 URL로 웹 통신을 요청한다. 괄호 안에 다른 것이 없다면 GET!
	.then(res => res.json()) 
// 통신 요청을 받은 데이터는 res라는 이름으로 JSON화 한다
	.then(data => { 
		console.log(data) // 개발자 도구에 찍어보기
	}) // JSON 형태로 바뀐 데이터를 data라는 이름으로 붙여 사용한다

 

GET 요청은?

https://movie.daum.net/moviedb/main?movieId=68593

위 주소는 ? 로 쪼개진다.

"?" 기준으로 앞부분이 서버주소 / 뒷부분이 영화 번호 이다.

https://movie.daum.net/moviedb/main?movieId=68593

? : 여기서부터 전달할 데이터가 작성된다는 의미이다.

 

fetch 연습하기1

데이터 위치 찾기

RealtimeCityAir > row

fetch(url주소)
	.then(res => res.json()) 
	.then(data => { 
		console.log(data['RealtimeCityAir']['row'][0]);
	})

 

그러면 0번째있는데이터가 출력되는데 반복문으로 구 데이터를 모두 출력해보자

 

fetch("http://spartacodingclub.shop/sparta_api/seoulair") // 기본 요청(GET)
	.then(res => res.json()) // 요청해서 받은 데이터를 JSON화
	.then(data => { // JSON화 한 데이터를 다시 data로 이름짓기
		let rows = data['RealtimeCityAir']['row']
		rows.forEach((a) => {
			// 미세먼지 데이터 리스트의 길이만큼 반복해서 하나씩 개발자 도구에서 보기
			console.log(a)
		})
	})

 

1. rows변수에 row전체를 담아둔다.

2. 변수rows에 있는것들을 반복해서 출력해준다 (forEach 사용하기)

 

// forEach 사용법

변수.forEach(a =>{
	//출력내용작성
})

 

fetch연습하기2

버튼을 눌렀을때 가져올 데이터들을 리스트에 추가하려면?

 

let rows = data['RealtimeCityAir']['row']

rows.forEach((a) => {
	let gu_name = a['키값명']
	let gu_mise = a['키값명']
	console.log(gu_name, gu_mise)

	let temp_html = `<li>${gu_name} : ${gu_mise}</li>`
	$('#names-q1').append(temp_html)
})

//html
<ul id="names-q1">
    <li>중구 : 82</li>
</ul>

 

append() : 컨텐츠를 선택된 요소 내부의 끝 부분에서 삽입한다.

 

그러면 이렇게 <li>${gu_name} : ${gu_mise}</li> 태그가 반복문을 돌면서 추가된다.

 

하지만 여기서 문제점?

 

버튼을 누를때마다 데이터 리스트가 또 추가되게 될것이다.

그래서

 

$('#names-q1').empty(); 로 지워준후 다시 데이터를 뿌려주게 해준다.

 

fetch연습하기3

Mission : 미세먼지 수치가 40 이상인 곳은 빨간색으로 표시하라

 

//style
.bad {
    color: red;		
}

//script
function q1() {
    let url = 'http://spartacodingclub.shop/sparta_api/seoulair'
    $('#names-q1').empty(); //지워주기
    fetch(url).then(res => res.json()).then(data => {
        let rows = data['RealtimeCityAir']['row'];
        rows.forEach(a =>{
            let gu_name = a['MSRSTE_NM'];
            let gu_mise = a['IDEX_MVL'];
            
            let temp_html = ``; //일단 빈값으로 비워두기
            //조건문으로 태그에 클래스 추가하여준다.
            if(gu_mise > 40){
                temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`;//클래스 추가
            }else {
                temp_html = `<li>${gu_name} : ${gu_mise}</li>`;
            }
            $('#names-q1').append(temp_html);
        })
    })
}

 

1. 조건문을 사용해 40이 넘을때만 bad클래스가 추가된 태그로 작성한다.

2.  스타일에서 bad클래스의 스타일을 수가한다.

 

 

 

그러면 이렇게 40이 넘을떄 (조건) 에 맞춰 클래스가 추가되어 스타일이 입혀진다

 

완-썽

반응형
LIST

'Today I Learned' 카테고리의 다른 글

배포 그게 대체 뭔데?  (0) 2024.12.26
Git 을 알아보자  (2) 2024.12.23
개발 용어 정리  (2) 2024.11.28
Javascript 톺아보기  (1) 2024.11.25
Javascript  (2) 2024.11.22