๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SeSAC

[iOS] TIL_230807

by lizzydev 2023. 8. 9.

๋„คํŠธ์›Œํฌ ํ†ต์‹ 

Open API ๋ชฉ๋ก

Get

๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

POST

์ƒˆ๋กœ์šด ์ฝ˜ํ…์ธ  ๋ณด๋‚ผ๋•Œ (ex. ์ƒˆ๋กœ์šด ์Šคํ† ๋ฆฌ ์ž‘์„ฑํ•ด์„œ ๋ณด๋ƒ„)

PUT

๊ธฐ์กด ์ฝ˜ํ…์ธ  ์ˆ˜์ •( ex. ์ž‘์„ฑํ–ˆ๋˜ ์Šคํ† ๋ฆฌ ํ…์ŠคํŠธ ๋‚ด์šฉ ์ˆ˜์ •ํ•จ)

DELETE

๊ธฐ์กด ์ฝ˜ํ…์ธ  ์‚ญ์ œ (ex.์Šคํ† ๋ฆฌ ์‚ญ์ œ)

bookmark

 

๋ฐ์ดํ„ฐ๋žฉ - SERVICE-API

๋ฐ์ดํ„ฐ๋žฉ ํ†ตํ•ฉ๊ฒ€์ƒ‰์–ด ํŠธ๋ Œ๋“œ ํ†ตํ•ฉ๊ฒ€์ƒ‰์–ด ํŠธ๋ Œ๋“œ๋Š” ๋„ค์ด๋ฒ„ ํ†ตํ•ฉ๊ฒ€์ƒ‰์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒ€์ƒ‰์–ด๋ฅผ ์—ฐ๋ น๋ณ„, ์„ฑ๋ณ„, ๊ธฐ๊ธฐ๋ณ„(PC, ๋ชจ๋ฐ”์ผ)๋กœ ์„ธ๋ถ„ํ™”ํ•ด์„œ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” API์ž…๋‹ˆ๋‹ค. ๋ถ„์„ํ•˜๊ณ  ์‹ถ์€ ์ฃผ์ œ๊ตฐ์„

developers.naver.com

bookmark

 

๊ฒ€์ƒ‰ > ๋ธ”๋กœ๊ทธ - Search API

๊ฒ€์ƒ‰ > ๋ธ”๋กœ๊ทธ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ๊ฐœ์š” ๊ฐœ์š” ๊ฒ€์ƒ‰ API์™€ ๋ธ”๋กœ๊ทธ ๊ฒ€์ƒ‰ ๊ฐœ์š” ๊ฒ€์ƒ‰ API๋Š” ๋„ค์ด๋ฒ„ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋‰ด์Šค, ๋ฐฑ๊ณผ์‚ฌ์ „, ๋ธ”๋กœ๊ทธ, ์‡ผํ•‘, ์˜ํ™”, ์›น ๋ฌธ์„œ, ์ „๋ฌธ์ •๋ณด, ์ง€์‹iN, ์ฑ…, ์นดํŽ˜๊ธ€ ๋“ฑ ๋ถ„์•ผ๋ณ„๋กœ ๋ณผ ์ˆ˜

developers.naver.com

API(Application Programming Interface)

์•ฑ → ์„œ๋ฒ„ : Request(HTTP Method) & ์ธ์ฆํ‚ค

์„œ๋ฒ„ → ์•ฑ : Response

Response

xml๋ฐฉ์‹(์›น์นœํ™”) or json ๋ฐฉ์‹

xml

json

  • iOS๋Š” json์„ ๋” ๋งŽ์ด ์”€

SwifyJson & Alamofire ์‹ค์Šต

SwifyJson & Alamofire ํŒจํ‚ค์ง€ ์ถ”๊ฐ€

https://github.com/SwiftyJSON/SwiftyJSON

json๊ด€๋ฆฌ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ

Alamofire.request(url, method: .get).validate().responseJSON { response in
    switch response.result {
    case .success(let value):
        let json = JSON(value)
        print("JSON: \(json)")
    case .failure(let error):
        print(error)
        
    }
    
}

url : https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=1079

 let json = JSON(value) 

→ SwiftyJson ํ†ตํ•ด์„œ ๋งคํ•‘ ๋˜์–ด์žˆ๋Š” json ๊ฐ’ ์–ป์–ด์˜ค๋Š” ๊ฒƒ

json์— ์žˆ๋Š” ๋‚ด์šฉ๋ฌผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•

self ๋ถ™์—ฌ์•ผ ํ•จ.

์„œ๋ฒ„ ํ†ต์‹  ์ฝ”๋“œ ์•ˆ์— ์žˆ๋Š” print๋Š” ๋Šฆ๊ฒŒ ์ถœ๋ ฅ ๋จ.

์„œ๋ฒ„ํ†ต์‹  ํ•จ์ˆ˜ํ™”

PickerView

ํšŒ์ฐจ ์ˆซ์ž๋กœ ํ”ผ์ปค๋ทฐ ๋ฐ์ดํ„ฐ ์„ค์ •

ํ”ผ์ปค๋ทฐ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์—ฐ๋„ ์„œ๋ฒ„ํ†ต์‹ 

ATS

  • http๋Š” ๋ฌด์กฐ๊ฑด ๋ธ”๋ฝ
  • https ๋Š” ๊ธฐ๊ด€์—์„œ ๋ณด์•ˆ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์•„์•ผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ

์„œ๋ฒ„ํ†ต์‹  ์•ˆ๋˜๊ณ  ์—๋Ÿฌ๋‚จ

๋ชจ๋“  url ํ—ˆ์šฉ

xcode์—์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ชจ๋“  ํŠน์ •ํŒŒ์ผ .gitignore ํ•˜๋Š” ๋ฒ•

ํŠน์ • ํ”„๋กœ์ ํŠธ์—์„œ ์›ํ•˜๋Š” ํŒŒ์ผ .gitignoreํ•˜๋Š” ๋ฒ•

๋ฌด์‹œํ•˜๊ณ  USE “.”

.gitignore์— ์ถ”์  ์•ˆํ•˜๊ณ  ์‹ถ์€ ํŒŒ์ผ์ด๋ฆ„(APIKey.swift)์ด๋ฆ„ ์ถ”๊ฐ€

APIKey ํŒŒ์ผ ์ƒˆ๋กœ ์ƒ์„ฑํ–ˆ์–ด๋„ A ์•ˆ ๋œธ → ๊นƒ์—์„œ ์ถ”์  ์•ˆ ํ•œ๋‹ค๋Š” ๋œป.

SwiftyJson ์‚ฌ์šฉ๋ฒ•

json ๋ฐ์ดํ„ฐ์˜ movieNm์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์Œ.

์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜ค๋ฉด ์ž˜๋ชป ๊ฐ€์ ธ์˜จ๊ฑฐ๋ผ ๊ณต๋ฐฑ ๋ฐ–์— ๋ชป ๊ฐ€์ ธ์˜ด

์•„๋ž˜์ฒ˜๋Ÿผ json depth ๋ฐ”๊นฅ๋ถ€ํ„ฐ ์š”์†Œ ํ•˜๋‚˜ํ•˜๋‚˜ ์ ‘๊ทผํ•˜๋ฉด์„œ ๊ฐ€์ ธ์™€์•ผํ•จ.

url ์ฃผ์†Œ์˜ ๊ตฌ์กฐ

scheme,host, port, path, querystring

์•ฑ ๋ฒˆ๋“ค ์ถ”์ถœํ•˜๊ธฐ

  • ์••์ถ•ํ•œ๊ฑฐ ๋‹ค๋ฅธ ๊ณณ์— ๋นผ๋‚ด์„œ ์ „์†กํ•˜๋Š”๊ฒƒ ๊ฐ€๋Šฅ (buildํ•˜๊ณ  ์••์ถ•ํ•ด์•ผํ•จ)
  • ์ „์†ก๋ฐ›์œผ๋ฉด ์••์ถ• ํ’€์–ด์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ์–ด๋‹ค ๋†“์œผ๋ฉด ์‹คํ–‰ ๊ฐ€๋Šฅ

'SeSAC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] TIL_230809  (0) 2023.08.10
[iOS] TIL_230808  (0) 2023.08.09
[iOS] TIL_230804  (0) 2023.08.06
[iOS] TIL_230803  (0) 2023.08.06
[iOS] TIL_230802  (0) 2023.08.05