<aside> 💡 제가 만든 웹 페이지에서 로그인화면으로 넘어가지 않습니다! 현상 처리법 개발자도구 → Application → 로컬스토리지에 있는 토큰삭제

</aside>

<aside> 💡 프론트엔드 스쿨 기수가 진행되는 동안은 유지가 되나 그 외 기간은 중간에 서버를 닫을 수도 있습니다.

</aside>

<aside> 💡 ~url**?limit=Number&skip=Number**식의 쿼리를 날릴 수 있습니다.

limit = {몇개 불러올지}&skip={몇개 건너뛸지} ex) 게시글 10개를 넘어가고 다음 5개의 게시글을 가져온다, 11번째 게시글부터 5개의 게시글 불러오기 /post/feed/?limit=5&skip=10

이 기능을 활용해서 페이지 처리를 할 수 있습니다!

</aside>

0. 요청 url

https 서버 : https://api.mandarin.weniv.co.kr/

감귤마켓 URL : http://146.56.183.55:3000/

<aside> 💡 예시페이지 감귤마켓에서 사용중인 api와 실습용 api는 별개서버를 사용중입니다.

</aside>

* 요청 예시

-login

const url = "[<https://api.mandarin.weniv.co.kr>](<https://api.mandarin.weniv.co.kr/>)";

try{

	const res = await fetch(url+"/user/login/", {
                    method: "POST",
                    headers: {
                        "Content-Type": "application/json",
                    },
                    body : JSON.stringify({
                        "user":{
                            "email": emailAddr.value,
                            "password": pw.value
                        }
                    })
                });
	const resJson = await res.json();
	console.log(resJson);
} catch(err){
  console.error(err);
}

-image

const url = "<https://mandarin.api.weniv.co.kr>";

try {
  const response = await fetch(url+"/image/uploadfiles", {
      method: "POST",
      body : formData
  });

  const data = await response.json();

  for(let i of data) {
      name.push(i["filename"]);
  }

  if(name.length > 1) {
      return name.join(",");
  } else {
      return name[0];
  }
} catch (err) {
	console.error(err);
}

1. 이미지

프로필 등록, 프로필 수정, 상품 등록 페이지 등 이미지 등록이 필요한 페이지에서 사용하는 API입니다. 이미지 등록이 필요한 페이지에서는 우선 서버에 이미지를 전송하면 숫자로 이루어진 filename을 포함하는 응답을 받을 수 있습니다. 그 filename을 다른 정보와 함께 서버에 전송해 줍니다.

*10MB 이상의 이미지는 업로드 할 수 없습니다.