728x90
[알고리즘]
[강의]
네트워킹 retrofit, OpenAPI
1. http와 api
http : 통신을 하기위한 약속
api : 데이터를 주고받기 위한 약속
gradle에 디팬던시에 아래 추가
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.google.code.gson:gson:2.8.5'
쿼리 스트링
url 주소에 ?는 쿼리스트링을 작성하겠다는 신호입니다. 쿼리스트링은 사용자가 입력 데이터를 전달하는 방법중 하나입니다. 아래 주소는 쿼리스트링으로 작성했고 page라는 키와 2라는 벨류로 나타냅니다.
https://reqres.in/api/users?page=2
Main.java
import retrofit2.Call;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
Call<Object> retrofitTest = RetrofitClient.getApi().retrofitTest(2);//우리는 2페이지를 확인할 것이기 때문에 2를 삽입하겠습니다.
//Call은 retrofit라이브러리의 인터페이스이며 서버에서 응답하는 값을 담는 역할을 합니다.
try {
System.out.println(retrofitTest.execute().body());//서버에서 받은 데이터를 확인해보겠습니다.
} catch (IOException e) {
e.printStackTrace();
}
}
}
RetrofitClient
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitClient {
private static final String BASE_URL = "https://reqres.in/";
//BASE_URL에는 변하지 않는 URL주소를 입력해 주면 됩니다. 데이터의 위치에 따라 변하지 않는 주소를 말이죠.
public static RetrofitService getApi() {
return getInstance().create(RetrofitService.class);
}//getInstance 메소드를 통해 인스턴스를 반환하게됩니다.
private static Retrofit getInstance() {
Gson gson = new GsonBuilder()
.setLenient()
.create();//통신을 할 때 JSON 사용 및 해당 객체로의 파싱을 위해 생성합니다.
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();//서버에서는 JSON으로 응답하므로 우리는 build.gradle에 설정한 gson을 이용합니다.
}
}
RetrofitService
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface RetrofitService {
@GET("/api/users/")
Call<Object> retrofitTest(@Query("page") int page);
}
//@Query는 Retrofit 라이브러리를 이용할 때 쿼리스트링을 입력하는 방법입니다.
//이렇게 파라미터 변수로 작성해놓으면 함수를 호출할 때 파라미터를 바꿔가며 원하는 페이지를 조회할 수 있습니다.
build.gradle
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'org.apache.commons:commons-lang3:3.0'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}
객체지향 문제 풀어보기
카페 시스템
- 요구사항
- 고객은 음료 주문할 수 있다.
- 음료는 아이스아메리카노(1000원), 라떼(1500원), 밀크티(2000원), 밀크쉐이크(3000원), 캐모마일(4000원)이 있다.
- 직원은 주문 받은 음료를 제조한다.
추가
- 카페의 매출 금액을 알 수 있다.
- 고객은 주문 시, 금액을 지불해야한다.
- 고객이 가진 돈 보다 높은 금액의 음료는 주문할 수 없다.
- 고객이 음료를 마시면 음료는 줄어든다.
728x90
'스파르타코딩클럽(내일배움캠프)' 카테고리의 다른 글
스파르타 코딩 클럽 4주차 4일 (0) | 2022.11.24 |
---|---|
스파르타 코딩 클럽 4주차 3일 (0) | 2022.11.22 |
스파르타 코딩 클럽 4주차 1일 (0) | 2022.11.20 |
스파르타 코딩 클럽 3주차 후기 (1) | 2022.11.20 |
스파르타 코딩 클럽 3주차 5일 (1) | 2022.11.18 |