CODEFλ μ¨λΌμΈμ ν©μ΄μ§ λ°μ΄ν°λ₯Ό ν΄λΌμ΄μΈνΈ μμ§κ³Ό μΉ API λ±μ νμ©ν΄ μ½κ³ λΉ λ₯΄κ² μ¬μ©ν μ μλλ‘ λμ΅λλ€. μμ΄λμ΄κ° ꡬνλκΈ° μν 볡μ‘ν κ³Όμ μ κ°κ²°νκ² λ°κΎΈκ³ , μκ³ λ‘μμ μ€μ΄κ³ μ λ Έλ ₯ν©λλ€.
ννμ΄μ§
κ°λ°κ°μ΄λ
λΈλ‘κ·Έ
easycodefgoλ CODEF API μ°λ κ°λ°μ λλ λΌμ΄λΈλ¬λ¦¬ μ νΈμ
λλ€.
μ¬μ©μ μν΄μλ ννμ΄μ§ κ°μ
ν λ°λͺ¨/μ μ μλΉμ€ μ μ²μ ν΅ν΄ μ격 μ¦λͺ
μ μν ν΄λΌμ΄μΈνΈ μ 보 λ±μ λ°κΈλ°μμΌ νλ©° μ¬μ© κ°λ₯ν λͺ¨λ APIμ μλν¬μΈνΈ(μν, μΉ΄λ, 보ν, μ¦κΆ, 곡곡, κΈ°ν)μ μμ²/μλ΅ νλͺ©μ λͺ¨λ κ°λ°κ°μ΄λλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
$ go get github.com/codef-io/easycodefgo
μλ κ°μ΄λλ easycodefgo-examλ₯Ό κΈ°λ°μΌλ‘ μμ±λμμΌλ©° μλλ°μ€ μλ²λ₯Ό λμμΌλ‘ μ¦μ ν μ€νΈκ° κ°λ₯ν©λλ€.
μλλ°μ€μμλ νμ μμ² νλΌλ―Έν° μ¬λΆλ₯Ό 체ν¬ν λ€ μμ² μνμ λ°λ₯Έ μμ λμ΄ μλ κ³ μ μλ΅ κ°μ λ°νν©λλ€.
μ¬μ©μλ μλλ°μ€λ₯Ό ν΅ν΄ μ½λμν μ°λμ λν κ°λ° μ°μ΅κ³Ό μν λ³ μλ΅ μλ£ κ΅¬μ‘° λ±μ νμΈ ν μ μμ΅λλ€.
CODEF API μλΉμ€λ₯Ό μ΄μ©νκΈ° μν΄μλ μλΉμ€ μ΄μ©μ λν μ격 μ¦λͺ μ ν΅ν΄ ν ν°μ λ°κΈλ°μμΌ ν©λλ€. ν ν°μ λͺ¨λ μμ²μ ν€λ κ°μ ν¬ν¨λμ΄μΌ νλ©° νλ² λ°κΈ λ°μ ν ν°μ μΌμ£ΌμΌκ° μ¬μ¬μ©μ΄ κ°λ₯ν©λλ€.
easycodefgo λΌμ΄λΈλ¬λ¦¬λ ν ν°μ λ°κΈκ³Ό μ¬μ¬μ©μ μλμΌλ‘ μ²λ¦¬ν©λλ€.
μ¬μ¬μ© μ€μΈ ν ν°μ μ ν¨κΈ°κ°μ΄ λ§λ£λλ κ²½μ° μ¬λ°κΈ λν μλμΌλ‘ μ²λ¦¬λ©λλ€.
μ¬μ©μλ λ¨μν μ격μ¦λͺ
μ μν ν΄λΌμ΄μΈνΈ μ 보 μ€μ λ§μ μ§ννλ©΄ λ©λλ€.
μλμ μμ λ μ¬μ©μκ° μ§μ ν ν°μ λ°κΈλ°λ κ³Όμ μ μ€λͺ
ν©λλ€.
κ³μ κ΄λ¦¬λ μν μμ²μ ν ν°μ λΌμ΄λΈλ¬λ¦¬ λ΄μμ μλ λ°κΈλ°μ μ¬μ©νκΈ° λλ¬Έμ νΉλ³ν κ²½μ°κ° μλλΌλ©΄ μ¬μ©μκ° μ§μ ν ν°μ μμ²ν νμλ μμ΅λλ€.
μμ λ§ν¬ https://github.com/codef-io/easycodefgo-exam/blob/master/00_AccessToken/main.go
package main
import (
"fmt"
"log"
ecg "github.com/codef-io/easycodefgo"
)
const (
demoClientID = ""
demoClientSecret = ""
clientID = ""
clientSecret = ""
publicKey = ""
)
func main() {
// μ½λμν μΈμ€ν΄μ€ μμ±
codef := &ecg.Codef{
PublicKey: publicKey,
}
// λ°λͺ¨ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - λ°λͺ¨ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - λ°λͺ¨ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfoForDemo(demoClientID, demoClientSecret)
// μ μ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - μ μ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - μ μ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfo(clientID, clientSecret)
// ν ν° λ°κΈ μμ²
result, err := codef.RequestToken(ecg.TypeSandbox)
if err != nil {
log.Fatalln(err)
}
// κ²°κ³Ό μΆλ ₯
fmt.Println(result)
}
CODEF API μλΉμ€μ μ¬λ¬ μνλ€ μ€ μμ² νλΌλ―Έν°μ Connected IDκ° νμν κ²½μ°κ° μμ΅λλ€. μΈμ¦μ΄ νμν CODEF APIλ₯Ό μ¬μ©νκΈ° μν΄μλ μλ μ μ (End User) κ³μ μ 보(λμκΈ°κ΄μ μΈμ¦μλ¨)λ±λ‘μ΄ νμνλ©°, μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ§λ€ λ€λ₯Έ Connected IDλ₯Ό λ°κΈλ°μ μ μμ΅λλ€. (Connected IDλ κ°λ°κ°μ΄λ μΈμ¦λ°©μμμ μμΈν λ΄μ©μ νμΈνμΈμ.)
Connected ID λ°κΈ μ΄νμλ μ§μ μ μΈ κ³μ μ 보 μ μ‘ μμ΄ λμκΈ°κ΄μ λ°μ΄ν°λ₯Ό μμ²ν μ μμ΅λλ€. Connected IDλ κ³μ λ±λ‘ μμ² μ λ°κΈλλ©° μ΄ν κ³μ μΆκ°/κ³μ μμ /κ³μ μμ μμ²μΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€. λμΌν κΈ°κ΄μ λμΌν κ³μ μ 보λ μ€λ³΅ν΄μ λ±λ‘ν μ μμΌλ©° κ°μΈ κ³ κ°/κΈ°μ κ³ κ° κ°κ° 1κ°μ© λ±λ‘μ΄ κ°λ₯ν©λλ€.
λͺ¨λ μνμ νλΌλ―Έν°μ Connected IDκ° νμν κ²μ μλλλ€. μνλ³ νλΌλ―Έν°λ κ°λ°κ°μ΄λ μνμλ΄μμ νμΈν μ μμ΅λλ€.
Connected IDλ₯Ό μ¬μ©νμ§ μλ APIλ₯Ό μ¬μ©νλ κ²½μ° κ³μ κ΄λ¦¬λ μλ΅νμΈμ.
μμ λ§ν¬ https://github.com/codef-io/easycodefgo-exam/blob/master/01_CreateAccount/main.go
...
func main() {
...
// μμ² νλΌλ―Έν° μ€μ
// - κ³μ κ΄λ¦¬ νλΌλ―Έν°λ₯Ό μ€μ (https://developer.codef.io/cert/account/cid-overview)
accountList := []map[string]interface{}{}
account := map[string]interface{}{
"countryCode": "KR",
"businessType": "BK",
"clientType": "P",
"organization": "0004",
"loginType": "1",
"id": "user_id",
}
pwd, err := ecg.EncryptRSA("password", codef.PublicKey)
if err != nil {
log.Fatalln(err)
}
account["password"] = pwd
accountList = append(accountList, account)
parameter := map[string]interface{}{
"accountList": accountList,
}
// μμ²
result, err := codef.CreateAccount(ecg.TypeSandbox, parameter)
if err != nil {
log.Fatalln(err)
}
// κ²°κ³Ό νμΈ
fmt.Println(result)
}
κ³μ λ±λ‘ μμ²μ λ±λ‘νλ €λ μ¬λ¬ κΈ°κ΄μ κ³μ μ λͺ©λ‘ νλΌλ―Έν°λ‘ μ€μ ν΄ νλ²μ μμ²μ΄ κ°λ₯νλ©° μλ΅ κ²°κ³Όλ μλμ κ°μ΅λλ€. μ¬μ©μλ λ°κΈλ°μ Connected IDλ₯Ό κ³μ λ±λ‘μ μ±κ³΅ν κΈ°κ΄(successList) μν μ‘°ν μμ²μ μ¬μ©μ ν μ μμ΅λλ€.
μ) κ΅λ―Όμν(0004)μΌλ‘ λ±λ‘ν Connected IDλ₯Ό μ°μ μν(0002) μν μ‘°νμ μ¬μ©ν μ μμ
{
"result" : {
"code" : "CF-00000",
"extraMessage" : "",
"message" : "μ μ",
"transactionId":"786e01e459af491888e1f782d1902e40"
},
"data" : {
"successList" : [ {
"code" : "CF-00000",
"message" : "μ μ",
"extraMessage" : "",
"countryCode" : "KR",
"businessType" : "BK",
"clientType" : "P",
"loginType" : "1",
"organization" : "0004"
}],
"errorList" : [ ],
"connectedId" : "byi1wYwD40k8hEIiXl6bRF"
}
}
κ³μ λ±λ‘ μ΄μΈμ κ³μ μΆκ°, μμ , μμ λ±μ κ³μ κ΄λ¦¬ κΈ°λ₯κ³Ό κ³μ λͺ©λ‘ μ‘°ν, Connected ID λͺ©λ‘ μ‘°ν λ± μ‘°ν κΈ°λ₯μ easycodefgo-exam
μμ νμΈ ν μ μμ΅λλ€.
μΈμ¦μλ‘ κ³μ μ λ±λ‘νλ κ²½μ°μλ certνμΌ, keyνμΌ μΈνΈ νΉμ pfxνμΌ 2κ°μ§ λͺ¨λλ₯Ό μ§μν©λλ€. κ°λ°κ°μ΄λ κ³μ λ±λ‘μμ μμΈν λ΄μ©μ νμΈνμΈμ. μΈμ¦μ λ΄λ³΄λ΄κΈ°/κ°μ Έμ€κΈ° λ± μΈμ¦μ 릴λ μ΄ μλ² κΈ°λ₯μ΄ νμν κ²½μ° [email protected]λ‘ λ¬Έμν΄μ£ΌμκΈ° λ°λλλ€. μ½λμνμμλ κ³μ κ΄λ¦¬λ₯Ό μν μΈμ¦μ νμ κ³Ό μ μ‘ μλ²λ₯Ό μλΉμ€ νκ³ μμ΅λλ€.
μλ μ μ μ κ³μ λ±λ‘ κ³Όμ μ κ±°μ³ μν μ¬μ© μ€λΉκ° λλ¬λ€λ©΄ μ΄μ λ°κΈλ°μ Connected IDμ νμν νλΌλ―Έν° μ 보 μ€μ λ±μ ν΅ν΄ μ½λμν API μν μμ²μ ν μ μμ΅λλ€. Connected IDλ₯Ό μ¬μ©νλ μνκ³Ό Connected IDλ₯Ό μ¬μ©νμ§ μλ μν μμ² μμ λ₯Ό μλ μ½λλ₯Ό ν΅ν΄ νμΈνκ² μ΅λλ€.
νλ² λ κ°μ‘°νμλ©΄ λͺ¨λ μνμ νλΌλ―Έν°μ Connected IDκ° νμν κ²μ μλλλ€.
μνλ³ νλΌλ―Έν°λ κ°λ°κ°μ΄λ μνμλ΄μμ νμΈν μ μμ΅λλ€.
μμ μ½λ https://github.com/codef-io/easycodefgo-exam/tree/master/07_Product
// κ°μΈ 보μ κ³μ’ μ‘°ν(Connected ID μ¬μ©)
package main
import (
"fmt"
"log"
ecg "github.com/codef-io/easycodefgo"
)
const (
demoClientID = ""
demoClientSecret = ""
clientID = ""
clientSecret = ""
publicKey = ""
)
func main() {
// μ½λμν μΈμ€ν΄μ€ μμ±
codef := &ecg.Codef{
PublicKey: publicKey,
}
// λ°λͺ¨ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - λ°λͺ¨ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - λ°λͺ¨ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfoForDemo(demoClientID, demoClientSecret)
// μ μ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - μ μ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - μ μ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfo(clientID, clientSecret)
// μμ² νλΌλ―Έν° μ€μ
// - κ° μνλ³ νλΌλ―Έν°λ₯Ό μ€μ (https://developer.codef.io/products)
parameter := map[string]interface{}{
"connectedId": "8PQI4dQ......hKLhTnZ",
"organization": "0004",
}
// μ½λμν μ 보 μ‘°ν μμ²
// - μλΉμ€νμ
(0:μ μ, 1:λ°λͺ¨, 2:μλλ°μ€)
// κ°μΈ 보μ κ³μ’ μ‘°ν (https://developer.codef.io/products/bank/common/p/account)
productURL := "/v1/kr/bank/p/account/account-list"
result, err := codef.RequestProduct(productURL, ecg.TypeSandbox, parameter)
if err != nil {
log.Fatalln(err)
}
// κ²°κ³Ό μΆλ ₯
fmt.Println(result)
}
μ¬μ΄ μ½λμν κ°μ²΄ μμ± ν ν΄λΌμ΄μΈνΈ μ 보 λ±μ μ€μ ν λ€μ κ°μΈ 보μ κ³μ’ μ‘°νλ₯Ό μν νλΌλ―Έν°λ₯Ό μ€μ ν΄μ μν μμ²μ ν©λλ€. λΌμ΄λΈλ¬λ¦¬ μ¬μ©μλ ν ν° λ°κΈμ΄λ ν ν° κ΄λ¦¬, μμ² νλΌλ―Έν°μ μΈμ½λ©, μλ΅ λ°λμ λμ½λ© λ± APIμ΄μ©μ μν λΆμμ μΈ μμ μ μ§μ ν νμκ° μμ΅λλ€. μν μμ²μ νμν νλΌλ―Έν°λ₯Ό μ€μ νκ³ RequestProduct λ©μλ νΈμΆλ§μΌλ‘ Connected IDλ‘ λ±λ‘λ κ³μ μ κΈ°κ΄(0004 κ΅λ―Όμν)μ λͺ©λ‘μ μλμ κ°μ΄ μλ΅λ°κ² λ©λλ€.
{
"result":{
"code":"CF-00000",
"extraMessage":"",
"message":"μ±κ³΅",
"transactionId":"5069429e367745baba92f5c12c4343de"
},
"data":{
"resDepositTrust":[
{
"resAccount":"06170204000000",
"resAccountBalance":"874890",
"resAccountCurrency":"KRW",
"resAccountDeposit":"11",
"resAccountDisplay":"061702-04-000000",
"resAccountEndDate":"",
"resAccountLifetime":"",
"resAccountName":"μ μΆμκΈ",
"resAccountNickName":"",
"resAccountStartDate":"20120907",
"resLastTranDate":""
},
{
"resAccount":"23850204000000",
"resAccountBalance":"0",
"resAccountCurrency":"KRW",
"resAccountDeposit":"11",
"resAccountDisplay":"238502-04-000000",
"resAccountEndDate":"",
"resAccountLifetime":"",
"resAccountName":"μ§μ₯μΈμ°λν΅μ₯-μ μΆμκΈ",
"resAccountNickName":"κΈμ¬ν΅μ₯",
"resAccountStartDate":"20060413",
"resLastTranDate":""
},
{
"resAccount":"54780300000000",
"resAccountBalance":"13110000",
"resAccountCurrency":"KRW",
"resAccountDeposit":"12",
"resAccountDisplay":"547803-00-000000",
"resAccountEndDate":"",
"resAccountLifetime":"",
"resAccountName":"OOκ΅λ―Όμ¬νμ μΆ",
"resAccountNickName":"",
"resAccountStartDate":"20151228",
"resLastTranDate":""
}
],
"resForeignCurrency":[],
"resFund":[],
"resInsurance":[],
"resLoan":[
{
"resAccount":"75260904000000",
"resAccountBalance":"120000000",
"resAccountCurrency":"KRW",
"resAccountDeposit":"40",
"resAccountDisplay":"752609-04-000000",
"resAccountEndDate":"20210628",
"resAccountLoanExecNo":"",
"resAccountName":"μμΈνΉλ³μμ νΌλΆλΆμ차보μ¦κΈλμΆ",
"resAccountNickName":"",
"resAccountStartDate":"20190628"
}
]
}
}
μ΄λ²μλ μ¬μ μ ν΄νμ μν μ 보λ₯Ό μ‘°ννλ μνμ μμ μ λλ€.
// μ¬μ
μλ±λ‘μν(ν΄νμ
μ‘°ν)(Connected ID λ―Έμ¬μ©)
package main
import (
"fmt"
"log"
ecg "github.com/codef-io/easycodefgo"
)
const (
demoClientID = ""
demoClientSecret = ""
clientID = ""
clientSecret = ""
publicKey = ""
)
func main() {
// μ½λμν μΈμ€ν΄μ€ μμ±
codef := &ecg.Codef{
PublicKey: publicKey,
}
// λ°λͺ¨ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - λ°λͺ¨ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - λ°λͺ¨ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfoForDemo(demoClientID, demoClientSecret)
// μ μ ν΄λΌμ΄μΈνΈ μ 보 μ€μ
// - μ μ μλΉμ€ κ°μ
ν μ½λμν ννμ΄μ§μ νμΈ κ°λ₯(https://codef.io/#/account/keys)
// - μ μ μλΉμ€λ‘ μν μ‘°ν μμ²μ νμ μ
λ ₯ νλͺ©
codef.SetClientInfo(clientID, clientSecret)
// μμ² νλΌλ―Έν° μ€μ
// - κ° μνλ³ νλΌλ―Έν°λ₯Ό μ€μ (https://developer.codef.io/products)
parameter := map[string]interface{}{
"organization": "0004",
}
reqIdentityList := []map[string]string{
map[string]string{
"reqIdentity": "3333344444",
},
map[string]string{
"reqIdentity": "1234567890",
},
}
parameter["reqIdentityList"] = reqIdentityList
// μ½λμν μ 보 μ‘°ν μμ²
// - μλΉμ€νμ
(0:μ μ, 1:λ°λͺ¨, 2:μλλ°μ€)
productURL := "/v1/kr/public/nt/business/status"
result, err := codef.RequestProduct(productURL, ecg.TypeSandbox, parameter)
if err != nil {
log.Fatalln(err)
}
// κ²°κ³Ό μΆλ ₯
fmt.Println(result)
}
2κ°μ μνΌ μμ² μμλ₯Ό λΉκ΅ν΄ μ½λμ λ΄μ©μ μ΄ν΄λ³΄λ©΄ κ°μΈ 보μ μΉ΄λ μ‘°νμ μ¬μ
μλ±λ‘μν μ‘°νμ μ°¨μ΄λ μμ²μ£Όμ(URL)μ νλΌλ―Έν° μ€μ μλ§ μλ κ²μ νμΈν μ μμ΅λλ€.
μ¬μ©μλ λΌμ΄λΈλ¬λ¦¬ μ¬μ©μ ν΅ν΄ μΌκ΄λ ννμ μ½λλ₯Ό μμ±νμ¬ κ°λ°ν μ μκ³ λ€λ₯Έ μ¬λμ΄ μμ±ν μν μμ² μ½λλ₯Ό μ½κ² μ΄ν΄ν μ μμ΅λλ€.
{
"result" : {
"code" : "CF-00000",
"extraMessage" : "",
"message" : "μ±κ³΅",
"transactionId" : "786e01e459af491888e1f782d1902e40"
},
"data" : [ {
"resBusinessStatus" : "μ¬μ
μνμ§μκ³ μμ΅λλ€.",
"resCompanyIdentityNo" : "3333344444",
"code" : "CF-00000",
"resTaxationTypeCode" : "98",
"extraMessage" : null,
"resClosingDate" : "",
"resTransferTaxTypeDate" : "",
"message" : "μ±κ³΅"
}, {
"resBusinessStatus" : "λΆκ°κ°μΉμΈμΌλ°κ³ΌμΈμμ
λλ€.\n*κ³ΌμΈμ νμ νλλ μ§λ2011λ
07μ01μΌμ
λλ€.",
"resCompanyIdentityNo" : "1234567890",
"code" : "CF-00000",
"resTaxationTypeCode" : "1",
"extraMessage" : null,
"resClosingDate" : "",
"resTransferTaxTypeDate" : "20110701",
"message" : "μ±κ³΅"
} ]
}
μΆκ° μΈμ¦ μνμ΄λ APIνΈμΆ νλ²μΌλ‘ μμ² κ²°κ³Όλ₯Ό λ°μ μ μλ μΌλ° μνκ³Όλ λ¬λ¦¬ 첫 μμ² μ΄ν λμκΈ°κ΄μ΄ μꡬνλ μΆκ° μΈμ¦(μ΄λ©μΌ, SMS, 보μλ¬Έμ μ λ ₯ λ±)μ μνν΄μΌ μμ² κ²°κ³Όλ₯Ό λ°μ μ μλ μνμ μλ―Έν©λλ€.
μλ₯Ό λ€μ΄ μλ κ·Έλ¦Όκ³Ό κ°μ΄ λ‘κ·ΈμΈμ νλ κ²½μ° μμ΄λμ λΉλ°λ²νΈ μΈμ λμκΈ°κ΄μμ μΆκ°μ μΌλ‘ μꡬνλ 보μλ¬Έμ μ λ ₯μ΄ μ§νλμ΄μΌ ν©λλ€. κ³ μ κ°μΈ μμ΄λ, λΉλ°λ²νΈμ λ€λ₯΄κ² 보μλ¬Έμ μ΄λ―Έμ§λ λλ€νκ² λ°νλκΈ° λλ¬Έμ μλ μ μ μ μΆκ°μ μΈ μ 보 μ λ ₯μ΄ νμν©λλ€.
λμκΈ°κ΄μ΄ μꡬνλ μΈμ¦λ°©μμ λ°λΌ Nμ°¨ μΆκ°μΈμ¦μ΄ μꡬ λ μ μμΌλ©°, μΆκ° μΈμ¦ μ 보 μ λ ₯μ΄ μ§νλμ΄μΌ μ μμ μΌλ‘ CODEF API μμ²λ μλ£λ©λλ€. 1μ°¨ μ λ ₯λΆ[κΈ°λ³ΈνλΌλ―Έν°] -> nμ°¨ μΆκ° μΈμ¦[κΈ°λ³Έ νλΌλ―Έν° + μΆκ° μΈμ¦ νλΌλ―Έν°] μμ²μΌλ‘ μ΄λ£¨μ΄μ§λλ€. μΆκ° μΈμ¦μ μ¬μ©μ μΈμ¦μ μν μ λ³΄κ° λλΆλΆμ΄λ©° μΆκ° μΈμ¦ μμ²μμλ Endpoint URLμ λμΌν©λλ€.
μλλ°μ€ μλ²λ₯Ό ν΅ν΄ μΆκ°μΈμ¦ μνμ λν ν μ€νΈλ₯Ό μ§ν ν μλ μμ΅λλ€.
μΆκ° μΈμ¦μ νμν νλΌλ―Έν° μ€λͺ μ κ°λ° κ°μ΄λμ κ° μν νμ΄μ§μμ νμΈν μ μμΌλ©° μμΈν λ΄μ©μ κ°λ°κ°μ΄λ μΆκ°μΈμ¦μ ν΅ν΄ νμΈνμΈμ.
μ½λμν μμ²μ μλλ°μ€ μΈ λ€λ₯Έ νμ μΌλ‘ μμ²μ 보λ΄μ€ κ²½μ° μλ νμ μ μ¬μ©ν μ μμ΅λλ€.
type ServiceType int // μ½λμν μ΄μ© μλΉμ€ νμ
μ 보
const (
TypeProduct ServiceType = iota // μ μλ²μ
TypeDemo // λ°λͺ¨ λ²μ
TypeSandbox // μλλ°μ€
)
easycodefgo λΌμ΄λΈλ¬λ¦¬ μ¬μ©μ λν λ¬Έμμ¬νκ³Ό κ°λ° κ³Όμ μμμ μ€λ₯ λ±μ λν λ¬Έμλ₯Ό ννμ΄μ§ λ¬Έμκ²μνμ μ¬λ €μ£Όμλ©΄ μ΄μνμ΄ λ΅λ³μ λ립λλ€. λ¬Έμκ²μνμ μμ± μμμ λ§μΆ° λ¬Έμ κΈμ λ¨κ²¨μ£ΌμΈμ. κ°λ₯ν λΉ λ₯΄κ² μλ΅μ λλ¦¬κ² μ΅λλ€.