๋ฉ”์ธ ์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

BZ-Java-Client

๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ด๋ฉฐ ํƒ€์ž… ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋˜๋Š” Java SDK๋กœ, openapi API๋ฅผ ํ™œ์šฉํ•˜๊ธฐ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Speakeasy์—์„œ ์ œ์ž‘MIT ๋ผ์ด์„ ์Šค

์š”์•ฝ

Benzinga APIs: ์ด REST API๋Š” ๋ชจ๋“  Benzinga API์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

SDK ์„ค์น˜

์‹œ์ž‘ํ•˜๊ธฐ

JDK 11 ์ด์ƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ๋Š” ๋ฐฐํฌ๋œ SDK ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค: Gradle:
implementation 'org.benzinga:BZClient:0.2.7'
Maven:
<dependency>
    <groupId>org.benzinga</groupId>
    <artifactId>BZClient</artifactId>
    <version>0.2.7</version>
</dependency>

๋นŒ๋“œ ๋ฐฉ๋ฒ•

git ์ €์žฅ์†Œ๋ฅผ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ํด๋ก ํ•œ ํ›„, *nix ์‹œ์Šคํ…œ์—์„œ๋Š” ./gradlew build๋ฅผ, Windows ์‹œ์Šคํ…œ์—์„œ๋Š” gradlew.bat๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์†Œ์Šค์—์„œ SDK ์•„ํ‹ฐํŒฉํŠธ๋ฅผ build ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค์—์„œ ๋นŒ๋“œํ•˜๊ณ  SDK ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ๋กœ์ปฌ Maven ์ €์žฅ์†Œ(๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ)์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด, git ์ €์žฅ์†Œ๋ฅผ ๋กœ์ปฌ์— ํด๋ก ํ•œ ๋’ค ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค: *nix์—์„œ:
./gradlew publishToMavenLocal -Pskip.signing
Windows์—์„œ๋Š”:
gradlew.bat publishToMavenLocal -Pskip.signing

SDK ์‚ฌ์šฉ ์˜ˆ์‹œ

์˜ˆ์ œ

package hello.world;

import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

์ธ์ฆ

ํด๋ผ์ด์–ธํŠธ๋ณ„ ๋ณด์•ˆ ์Šคํ‚ค๋งˆ

์ด SDK๋Š” ์ „์—ญ์ ์œผ๋กœ ๋‹ค์Œ ๋ณด์•ˆ ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:
NameTypeScheme
apiKeyAuthapiKeyAPI key
API์— ์ธ์ฆํ•˜๋ ค๋ฉด SDK ํด๋ผ์ด์–ธํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ apiKeyAuth ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
package hello.world;

import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค ๋ฐ ์ž‘์—…

  • get - ์• ๋„๋ฆฌ์ŠคํŠธ ๋ฆฌํฌํŠธ ์›๋ฌธ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • get - Bars V2 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Bulls Say Bears Say V1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์ปจ์„ผ์„œ์Šค ๋“ฑ๊ธ‰ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ํŒŒ์ƒ ์ง€ํ‘œ ๋ฐ ๋น„์œจ v3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getV22 - ๋ฐฐ๋‹น๊ธˆ V2.2 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ๋ฐฐ๋‹น๊ธˆ V2 ๋ฐ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์‹ค์  ์กฐํšŒ
  • get - ์‹ค์  ๋ฐœํ‘œ ์ฝœ ์ „๋ฌธ ๊ฐ€์ ธ์˜ค๊ธฐ
  • getAudio - ์‹ค์  ๋ฐœํ‘œ ์ฝœ ์˜ค๋””์˜ค ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ๊ฒฝ์ œ ์ง€ํ‘œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์ด๋ฒคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - FDA ์กฐํšŒ
  • getV21 - ๊ธฐ์ดˆ ์žฌ๋ฌด ์ง€ํ‘œ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getAlphaBeta - ์•ŒํŒŒ/๋ฒ ํƒ€ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getCompanyV21 - ๊ธฐ์—… ๋ฐ์ดํ„ฐ v2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getCompanyProfileV21 - ๊ธฐ์—… ํ”„๋กœํ•„ v2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getShareClass - ์ฃผ์‹ ํด๋ž˜์Šค V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getShareClassProfile - ์ฃผ์‹ ํด๋ž˜์Šค ํ”„๋กœํ•„ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ๊ธฐ์ดˆ ์žฌ๋ฌด ์ง€ํ‘œ V2 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getAssetClassification - ์ž์‚ฐ ๋ถ„๋ฅ˜ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getEarningsReports - ์‹ค์  ๋ณด๊ณ ์„œ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getFinancialsV21 - ์žฌ๋ฌด์ œํ‘œ V2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getV3 - ๊ธฐ์ดˆ ์žฌ๋ฌด ์ง€ํ‘œ V3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getBalanceSheetV3 - ๋Œ€์ฐจ๋Œ€์กฐํ‘œ V3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getCashFlowV3 - ํ˜„๊ธˆํ๋ฆ„ํ‘œ V3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getIncomeStatement - ์†์ต๊ณ„์‚ฐ์„œ V3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • getSharePriceRatios - ์ฃผ๊ฐ€ ๋น„์œจ V3 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์ •๋ถ€ ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ๊ฐ€์ด๋˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
  • getOwner - ์ธ์‚ฌ์ด๋” ๊ฑฐ๋ž˜ ์†Œ์œ ์ž ๊ฐ€์ ธ์˜ค๊ธฐ
  • getV21 - IPO v2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - IPO V2 ๊ฐ€์ ธ์˜ค๊ธฐ
  • bulkSync - ์ง€์ •๋œ ๊ฒ€์ƒ‰ ํ‚ค๋กœ ๋กœ๊ณ  ์กฐํšŒ
  • search - ์ง€์ •๋œ ๊ฒ€์ƒ‰ ํ‚ค๋กœ ๋กœ๊ณ  ์กฐํšŒ
  • get - ์ธ์ˆ˜ ๋ฐ ํ•ฉ๋ณ‘ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ๋‰ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
  • getRemoved - ์‚ญ์ œ๋œ ๋‰ด์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Newsquantified ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Offerings ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์šด์˜ ๋น„์œจ v2.1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - OptionActivity V1 ๊ฐ€์ ธ์˜ค๊ธฐ

quotedelayed()

  • getV1 - ์ง€์—ฐ๋œ ์‹œ์„ธ V1 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ์ง€์—ฐ ์‹œ์„ธ V2 ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Ratings ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Ratings Analysts ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ํ‰๊ฐ€ ๊ธฐ๊ด€ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Removed ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ (v2)
  • get - Splits ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - ํ‹ฐ์ปค ํŠธ๋ Œ๋“œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • getList - ํ‹ฐ์ปค ํŠธ๋ Œ๋“œ ๋ชฉ๋ก ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  • get - Valuation Ratios v2.1 ๊ฐ€์ ธ์˜ค๊ธฐ

์žฌ์‹œ๋„

์ด SDK์˜ ์ผ๋ถ€ ์—”๋“œํฌ์ธํŠธ๋Š” ์žฌ์‹œ๋„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ์„ค์ • ์—†์ด SDK๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, API์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์žฌ์‹œ๋„ ์ „๋žต์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์žฌ์‹œ๋„ ์ „๋žต์€ ๊ฐœ๋ณ„ ์ž‘์—…๋ณ„๋กœ ๋˜๋Š” SDK ์ „์ฒด์— ๋Œ€ํ•ด ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ API ํ˜ธ์ถœ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์žฌ์‹œ๋„ ์ „๋žต์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด retryConfig ๋นŒ๋” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด RetryConfig ๊ฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:
package hello.world;

import java.lang.Exception;
import java.util.concurrent.TimeUnit;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
import org.benzinga.BZClient.utils.BackoffStrategy;
import org.benzinga.BZClient.utils.RetryConfig;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .retryConfig(RetryConfig.builder()
                    .backoff(BackoffStrategy.builder()
                        .initialInterval(1L, TimeUnit.MILLISECONDS)
                        .maxInterval(50L, TimeUnit.MILLISECONDS)
                        .maxElapsedTime(1000L, TimeUnit.MILLISECONDS)
                        .baseFactor(1.1)
                        .jitterFactor(0.15)
                        .retryConnectError(false)
                        .build())
                    .build())
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}
์žฌ์‹œ๋„๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์žฌ์‹œ๋„ ์ „๋žต์„ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด, SDK ์ดˆ๊ธฐํ™” ์‹œ ์„ค์ •์„ ์ œ๊ณตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:
package hello.world;

import java.lang.Exception;
import java.util.concurrent.TimeUnit;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;
import org.benzinga.BZClient.utils.BackoffStrategy;
import org.benzinga.BZClient.utils.RetryConfig;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .retryConfig(RetryConfig.builder()
                    .backoff(BackoffStrategy.builder()
                        .initialInterval(1L, TimeUnit.MILLISECONDS)
                        .maxInterval(50L, TimeUnit.MILLISECONDS)
                        .maxElapsedTime(1000L, TimeUnit.MILLISECONDS)
                        .baseFactor(1.1)
                        .jitterFactor(0.15)
                        .retryConnectError(false)
                        .build())
                    .build())
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ด SDK์—์„œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์ „๋ฐ˜์ ์œผ๋กœ ์˜ˆ์ƒํ•˜๋Š” ๋ฐฉ์‹๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์˜คํผ๋ ˆ์ด์…˜์€ ์‘๋‹ต ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ API ์˜ค๋ฅ˜๋Š” models/errors/APIException ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ์˜คํผ๋ ˆ์ด์…˜์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ์˜ค๋ฅ˜ ์‘๋‹ต์ด ์ง€์ •๋œ ๊ฒฝ์šฐ, SDK๋Š” ๊ทธ์— ์—ฐ๊ด€๋œ ์˜ˆ์™ธ๋ฅผ ์ถ”๊ฐ€๋กœ ๋˜์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์˜คํผ๋ ˆ์ด์…˜์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ ํƒ€์ž…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ SDK ๋ฌธ์„œ์˜ ํ•ด๋‹น ์˜ค๋ฅ˜ ํ‘œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, get ๋ฉ”์„œ๋“œ๋Š” ๋‹ค์Œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค:
์˜ค๋ฅ˜ ํƒ€์ž…์ƒํƒœ ์ฝ”๋“œ์ฝ˜ํ…์ธ  ์œ ํ˜•
models/errors/ApiErrorResponse400, 500application/json
models/errors/APIException4XX, 5XX/

์˜ˆ์ œ

package hello.world;

import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.errors.ApiErrorResponse;
import org.benzinga.BZClient.models.operations.GetAnalystInsightsV1Request;
import org.benzinga.BZClient.models.operations.GetAnalystInsightsV1Response;

public class Application {

    public static void main(String[] args) throws ApiErrorResponse, Exception {

        Bzclient sdk = Bzclient.builder()
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystInsightsV1Request req = GetAnalystInsightsV1Request.builder()
                .build();

        GetAnalystInsightsV1Response res = sdk.analystInsights().get()
                .request(req)
                .call();

        if (res.modelsAnalystInsightsJSON().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

์„œ๋ฒ„ ์„ ํƒ

์ธ๋ฑ์Šค๋กœ ์„œ๋ฒ„ ์„ ํƒ

SDK ํด๋ผ์ด์–ธํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ .serverIndex(int serverIdx) ๋นŒ๋” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ ๊ธฐ๋ณธ ์„œ๋ฒ„๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์„œ๋ฒ„๋Š” ํ•ด๋‹น ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜คํผ๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„์— ๋Œ€์‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค:
#Server
0https://api.benzinga.com
1https://api.benzinga.com/api/v1
2https://api.benzinga.com/api/v2
3https://api.benzinga.com/api/v2.1
4https://api.benzinga.com/api/v2.2

์˜ˆ์ œ

package hello.world;

import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .serverIndex(4)
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

ํด๋ผ์ด์–ธํŠธ๋ณ„ ์„œ๋ฒ„ URL ์žฌ์ •์˜

๊ธฐ๋ณธ ์„œ๋ฒ„๋Š” SDK ํด๋ผ์ด์–ธํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ .serverURL(String serverUrl) ๋นŒ๋” ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ์ ์œผ๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:
package hello.world;

import java.lang.Exception;
import org.benzinga.BZClient.Bzclient;
import org.benzinga.BZClient.models.operations.GetAnalystReportsRawTextDataResponse;

public class Application {

    public static void main(String[] args) throws Exception {

        Bzclient sdk = Bzclient.builder()
                .serverURL("https://api.benzinga.com")
                .apiKeyAuth("<YOUR_API_KEY_HERE>")
            .build();

        GetAnalystReportsRawTextDataResponse res = sdk.analystReportsRawText().get()
                .page(700347L)
                .pagesize(558834L)
                .call();

        if (res.modelsAnalystReportRawTexts().isPresent()) {
            // ์‘๋‹ต ์ฒ˜๋ฆฌ
        }
    }
}

๊ฐœ๋ฐœ

์„ฑ์ˆ™๋„

์ด SDK๋Š” ๋ฒ ํƒ€ ๋‹จ๊ณ„์— ์žˆ์œผ๋ฉฐ, ๋ฉ”์ด์ € ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ์—†์ด๋„ ๋ฒ„์ „ ๊ฐ„์— ํ˜ธํ™˜์„ฑ์ด ๊นจ์ง€๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ • ํŒจํ‚ค์ง€ ๋ฒ„์ „์— ๊ณ ์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ์˜๋„์ ์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋งค๋ฒˆ ๋™์ผํ•œ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ฉด์„œ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์—ฌ

์ด SDK์— ๋Œ€ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ์—ฌ๋Š” ๊ฐ์‚ฌํžˆ ์—ฌ๊ธฐ์ง€๋งŒ, ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์ž๋™ ์ƒ์„ฑ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ํŒŒ์ผ์— ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ ๋ฒˆ ์ƒ์„ฑ ์‹œ ๋ชจ๋‘ ๋ฎ์–ด์”Œ์›Œ์ง‘๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Proof of Concept(POC)๊ฐ€ ํฌํ•จ๋œ PR ๋˜๋Š” issue๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ƒ์„ฑํ•ด ์ฃผ์‹œ๋ฉด, ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์„ ์„ ๋‹คํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Speakeasy๋กœ ์ƒ์„ฑ๋œ SDK