Flatiron CLI 프로젝트 - PokeDex
def self.fetch_pokemon
url = "https://pokeapi.co/api/v2/pokemon?limit=151"
response = HTTParty.get(url)
fetch_abilities(response["results"])
end
HTTParty
는 루비gem로 외부 정보에 액세스하고 이를 자동으로 배열 또는 해시로 구문 분석할 수 있습니다. 이 예에서는 pokeapi의 URL을 가져와 response
변수로 구문 분석했습니다. 거기에서 해시를 더 깊이 파고들어 results
어레이에 저장된 액세스 권한을 얻고자 하는 어레이와 별개가 아닌 불필요한 데이터를 제거할 수 있었습니다.pry(POKE::API)> response
=> {"count"=>1118,
"next"=>"https://pokeapi.co/api/v2/pokemon?offset=10&limit=10",
"previous"=>nil,
"results"=>
[{"name"=>"bulbasaur", "url"=>"https://pokeapi.co/api/v2/pokemon/1/"},
{"name"=>"ivysaur", "url"=>"https://pokeapi.co/api/v2/pokemon/2/"},
{"name"=>"venusaur", "url"=>"https://pokeapi.co/api/v2/pokemon/3/"},
{"name"=>"charmander", "url"=>"https://pokeapi.co/api/v2/pokemon/4/"},
{"name"=>"charmeleon", "url"=>"https://pokeapi.co/api/v2/pokemon/5/"},
{"name"=>"charizard", "url"=>"https://pokeapi.co/api/v2/pokemon/6/"},
{"name"=>"squirtle", "url"=>"https://pokeapi.co/api/v2/pokemon/7/"},
{"name"=>"wartortle", }
위 클립에서 볼 수 있는 데이터를 조작하는 것이 흥미로웠습니다. 각 포켓몬에는 이름이 있고 URL과 함께 이동, 능력, 유형, 게임 모양 등에 액세스할 수 있습니다. 정보에 더 깊이 들어가고 싶었습니다.
이를 위해 코드를 정리하는 새로운 방법을 만들어 보다 쉽게 편집할 수 있을 뿐만 아니라 시각적으로 더 매력적으로 만들 수 있습니다. 이제 포켓몬 객체 생성을 시작할 수 있습니다. 먼저 배열을 반복하고 개별 포켓몬 해시의 각 URL을 구문 분석하고 마지막으로
new
를 사용하여 새 포켓몬 개체를 만듭니다.def self.fetch_abilities(results)
results.each do |x|
response = HTTParty.get(x["url"])
POKE::Pokemon.new(response)
end
end
이것이 API 클래스의 끝입니다. 여기에서 우리는 Pokemon 클래스를 통해 정보를 가져오고 조작할 수 있으며 마지막으로 CLI 클래스를 만들어 사용자에게 옵션과 정보를 표시할 수 있습니다. Pokemon 클래스를 만드는 동안
send
를 사용하여 문제가 발생했습니다. 이 시점에서 프로젝트를 완료하는 것은 이전에 다른 게시물에서 다룬 이 방법을 통해 내 변수를 덮어쓴 이유에 대한 더 깊은 이해를 모으기 위한 것이었습니다. 원하는 경우 자세한 내용을 읽을 수 있습니다. puts "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
puts "⣿⣿⣿⣿⣿⡏⠉⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿
⣿⣿⣿⣿⣿⣿⠀⠀⠀⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠉⠁⠀⣿
⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠙⠿⠿⠿⠻⠿⠿⠟⠿⠛⠉⠀⠀⠀⠀⠀⣸⣿
⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣴⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢰⣹⡆⠀⠀⠀⠀⠀⠀⣭⣷⠀⠀⠀⠸⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠈⠉⠀⠀⠤⠄⠀⠀⠀⠉⠁⠀⠀⠀⠀⢿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⢾⣿⣷⠀⠀⠀⠀⡠⠤⢄⠀⠀⠀⠠⣿⣿⣷⠀⢸⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡀⠉⠀⠀⠀⠀⠀⢄⠀⢀⠀⠀⠀⠀⠉⠉⠁⠀⠀⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿"
puts "~~~~~~~~~~~~~GOOD BYE~~~~~~~~~~~~~"
Reference
이 문제에 관하여(Flatiron CLI 프로젝트 - PokeDex), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/e0smith/flatiron-cli-project-pokedex-31nk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)