도리안의 스팀잇 개발 이야기 #3 - 스팀 API 실행하는 자바 코드 만들기

in #dclick8 years ago (edited)



Illustrated by @newbijohn



시작하며…

에구… 연재가 오랫동안 지체되었네요. 늦더라도 멈추지 않고 꾸준히 진행하고자 합니다. 기다리신 분들께 죄송하다는 말씀을 드려요.

이번 회에서는 포스트맨으로 스팀 콘덴서 API를 실행하는 코드를 만드는 방법을 보여드립니다.



포스트맨에서 자바 코드 생성

방법은 간단합니다.

  1. 포스트맨에서 스팀 API를 실행하시고요.

  1. API가 정상적으로 실행됨을 확인하세요.

  2. 파라메터 입력 양식의 오른쪽에 위치한 Code를 클릭하세요.

image-1541466754066.png

  1. 팝업에서 Java - OK HTTP 또는 Java - Unirest를 선택하세요.

image-1541466828023.png

  1. 자바 코드가 생성되었음을 확인하세요.
  • Java - OK HTTP

image-1541466953447.png

  • Java - Unirest

image-1541466971264.png



자바 코드 작성 전 필수 사전 작업

생성된 자바 코드를 가지고 스팀 API를 실행하려 합니다. 여기서 필요한 OkHttp, Unirest 라이브러리를 포함해야 합니다.

Maven 프로젝트
  <dependencies>
    (html comment removed:  JSONObject 객체를 사용하기 위해 )
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20180813</version>
    </dependency>

    (html comment removed:  OkHttp로 스팀 API 실행하기 위해 )
    <dependency>
      <groupId>com.squareup.okhttp3</groupId>
      <artifactId>okhttp</artifactId>
      <version>3.11.0</version>
    </dependency>

    (html comment removed:  Unirest로 스팀 API 실행하기 위해 )
    <dependency>
    <groupId>com.mashape.unirest</groupId>
      <artifactId>unirest-java</artifactId>
      <version>1.4.9</version>
    </dependency>

  </dependencies>



자바 코드 작성

이제 한 예로 get_feed API를 실행하는 자바 코드를 만들어 보겠습니다. 아래 코드는 account 계정의 피드로부터 최근 포스트 count개의 제목들을 리스트로 생성합니다.

/**
 * condenser_api.get_feed API를 활용하여 피드의 최근 포스트 제목들을 리스트로 구함
 * @param account 대상 스팀잇 계정
 * @param count 포스트 개수
 * @return 최근 포스트 제목 리스트
 */
public static List<String> getTitleListFromFeed(String account, int count) {
    OkHttpClient client = new OkHttpClient();

    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(
        mediaType,
        String.format("{\"jsonrpc\":\"2.0\", \"method\":\"condenser_api.get_feed\", \"params\":[\"%s\", 0, %d], \"id\":1}", account, count)
    );
    Request request = new Request.Builder()
        .url("https://api.steemit.com")
        .post(body)
        .addHeader("Content-Type", "application/json")
        .addHeader("Cache-Control", "no-cache")
        .build();

    try {
        // 스팀 서버로부터 피드를 받음
        Response response = client.newCall(request).execute();
        String strResponse = response.body().string();
        JSONObject jsonResponse = new JSONObject(strResponse);

        // 받은 피드로부터 타이틀 리스트 생성
        List<String> titleList = new LinkedList<>();
        JSONArray jsonResult = jsonResponse.getJSONArray("result");
        for (int i = 0; i < jsonResult.length(); i++) {
            JSONObject jsonPost = jsonResult.getJSONObject(i);
            JSONObject jsonComment = jsonPost.getJSONObject("comment");
            int id = jsonComment.getInt("id");

            // id가 0인 빈 포스트는 건너뜀
            if (id != 0) {
                titleList.add(jsonComment.getString("title"));
            }
        }

        return titleList;
    }
    catch (IOException e) {
        e.printStackTrace();
        return new LinkedList<>();
    }
}



소스 공유

GitHub에 관련 소스를 공유하였으니 필요하신 분은 참고하세요.

https://github.com/netrance/Dorian-Java-Example/tree/master/Steem%20API/run_steem_api



마치며…

지금까지 포스트맨으로 스팀 API를 실행하는 자바 코드를 생성하는 방법 그리고 이를 활용하여 실제 API를 실행하는 방법에 대해 알아보았습니다.

자바 외에도 다른 언어의 코드들도 만들 수 있습니다. 이에 대해서는 다음 포스트에서 이어갈 예정입니다. 읽어주셔서 감사합니다.



지난 포스트

0회
1회
2회


Sponsored ( Powered by dclick )

dclick-imagead

Sort:  

@검색 OkHttp

안녕하세여. @steem.apps입니당. 요청하신 구글 내 스팀잇 [OkHttp] 검색 결과에요~♥

1. dorian-lee님의 도리안의 스팀잇 개발 이야기 #3 - 스팀 API 실행하는 자바 코드 만들기
자바 코드 작성 전 필수 사전 작업. 생성된 자바 코드를 가지고 스팀 API를 실행하려 합니다. 여기서 필요한 OkHttp, Unirest 라이브러리를 포함해야 합니다.
2. pratyush149님의 Retrofit Android Example Tutorial │ Web services using Retrofit
Open your Android studio and create new project with Blank Activity like below image. We Will need 2 Library for Retrofit working. Retrofit Library OkHttp Library
3. samon님의 Retrofit + OkHttp使用中遇到的FATAL EXCEPTION: OkHttp ... - Steemit저장된 페이지
前几天使用retrofit + OkHttp 时出现一个问题,大致情况是使用OkHttp上传视频文件时app闪退,错误如下: by samon.
4. millibot님의
26 Sep 2018 ... RE: Retrofit + OkHttp使用中遇到的FATAL EXCEPTION: OkHttp Dispatcher问题. You are viewing a single comment's thread from: Retrofit + ...
5. duswnd25님의 SMART MIRROR 제작기 #END — Steemkr저장된 페이지
그동안 연제했던 SMART MIRROR 제작기를 어느정도 완성하여 마지막으로 근황을 올리려고 합니다. 사용 Library Jsoup OkHttp AutofitTextView… by duswnd25.
6. asimsinanyuksel님의 Must Know Libraries for Android Developers
OkHttp: An HTTP & HTTP/2 client. http://square.github.io/OkHttp/. EventBus: Android optimized event bus that simplifies communication between Activities, ...
7. iqbalhood님의 Android Development Tips : How to minimize APK size?
21 Nov 2017 ... Based on the gradle depversion diagram, it appears that OkHttp has a dependencies to the okio library. If we use the same way as before then ...
8. edetebenezer님의 How to convert a Layout in an Android application to an Image using
... 'com.squareup.retrofit2:retrofit:2.1.0'; 'com.squareup.retrofit2:converter-gson:2.1.0'; 'com.squareup.OkHttp3:OkHttp:3.3.1'; 'com.google.zxing:core:3.2.1' ...
9. danielniklaus님의 Android : Upload Images With Retrofit 2.3.0 (Beginner)
Retrofit implementation "com.squareup.retrofit2:retrofit:2.3.0"; OkHttp implementation "com.squareup.OkHttp3:logging-interceptor:3.9.0"; Butterknife ...

jjm.jpeg
짱짱맨 호출에 응답하여 보팅하였습니다.

짱짱맨은 저자응원 프로그램입니다. 더 많은 저자 분들에게 더 큰 혜택을 드리고자 스파임대 스폰서를 받고 있습니다. 스폰서 참여방법과 짱짱맨 프로그램에 관해서는 이 글을 읽어 주세요. 기업형 예비증인 북이오(@bukio)가 짱짱맨 프로그램을 운영하고 있습니다. 여러분의 증인 보팅은 큰 힘이 됩니다. Vote for @bukio

^^ 보클로 응원하고 갑니다. 즐거운 하루 보내세요~

감사합니다. 오늘도 즐거운 하루 되시길... ^^

디클릭 & 보팅 드리고 갈게요!

감사합니다. 미세먼지가 심하다고 하니 유의하시길... ^^

보팅+디클 왔어여~~
좋은하루 하세여~~

감사합니다. 벌써 수요일이네요... ^^

신기방기!

눈에 보일만한 걸 만들면은... ^^

신기할 따름입니다 ^^^
1학년때 C언어 배우면서 아.. 이 길은 내 길이 아니구나~ 기계과 오길 잘했다 싶었죵 ㅋㅋ

반대로 저는 고등학교 기술 시간에 기계 관련 내용을 배우면서 기계과는 제 길이 아님을 알게 되었죠. 이렇게 서로 진로가 엇갈리네요. ^^;

Coin Marketplace

STEEM 0.05
TRX 0.33
JST 0.082
BTC 62530.03
ETH 1633.28
USDT 1.00
SBD 0.44