게임 정보 읽기

뒤끝 SDK는 뒤끝 서버와 통신하며 실제 게임 정보를 읽는 기능을 제공합니다.

GetTableList

뒤끝 콘솔에서 설정한 테이블의 리스트를 받아옵니다.

동기

GetTableList() -> BackendReturnObject

// example
Backend.GameInfo.GetTableList () ;

비동기

GetTableList( Function callback ) -> void

// example
Backend.GameInfo.GetTableList (( callback ) => {
    // 이후 처리
});

결과값 예시

{
    "privateTables":
    [
        "character",
        "stage",
        "private"
    ],
    "publicTables":
    [
        "dream",
        "new",
        "mine"
    ]
}

GetPublicContents

퍼블릭 테이블에 저장되어있는 내용을 불러옵니다.

동기

GetPublicContents( String tableName ) -> BackendReturnObject
GetPublicContents( String tableName, int limit ) -> BackendReturnObject

// example
Backend.GameInfo.GetPublicContents ( "tableName" ) ; 
Backend.GameInfo.GetPublicContents ( "tableName", 20 ) ;

비동기

GetPublicContents( String tableName, Function callback ) -> void
GetPublicContents( String tableName, int limit, Function callback ) -> void

// example
Backend.GameInfo.GetPublicContents ( "tableName", ( callback ) => { 
    // 이후 처리
});
Backend.GameInfo.GetPublicContents ( "tableName", 20, ( callback ) => {
    // 이후 처리
});

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
limitint(Optional) 불러올 게임정보 row 수. 최대 100100

리스트 더 불러오기

이 기능은 퍼블릭 테이블 조회 시에만 가능한 기능입니다.
리스트의 페이징 처리를 위해서는 firstKey가 필요합니다. firstKey를 사용하면 이 값에 해당하는 row 다음 값을 시작으로 리스트를 불러옵니다. 리스트의 마지막 내용인 경우, 더 이상 firstKey 가 존재하지 않습니다.

동기 페이징 처리 하는 방법

GetPublicContents( String tableName, String firstKey ) -> BackendReturnObject
GetPublicContents( String tableName, String firstKey, Int limit ) -> BackendReturnObject

// example
// 처음 리스트를 읽을 때, firstkey 값을 저장해 놓은 뒤,
BackendReturnObject bro = Backend.GameInfo.GetPublicContents("tableName");
String firstKey = bro.FirstKeyString();

// 다음페이지 넘어갈 때 firstKey를 offset으로 하여 다시 읽어옴
Backend.GameInfo.GetPublicContents ( "tableName", firstKey, 10 ) ;

비동기 페이징 처리 하는 방법

GetPublicContents( String tableName, String firstKey, Function callback ) -> void
GetPublicContents( String tableName, String firstKey, Int limit, Function callback ) -> void

// example
// 동기함수와 같은방식으로 firstKey를 저장한 후, 다음 리스트를 불러옴
Backend.GameInfo.GetPublicContents ( "tableName", firstKey, 10, ( callback ) => {
    // 이후 처리
});

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
firstKeystring(Optional) 불러올 게임정보의 시작점
limitint(Optional) 불러올 게임정보 row 수. 최대 100100

Error cases

  • 존재하지 않는 tableName인 경우
    statusCode : 404
    errorCode : NotFoundException
    message : table not found, table을(를) 찾을 수 없습니다

  • public table 아닌 tableName 을 입력한 경우
    statusCode : 400
    errorCode : BadParameterException
    message : bad table, 잘못된 table 입니다

  • 비활성화 된 tableName 인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : inactiveTable 사전 조건을 만족하지 않습니다.

  • limit이 100이상인 경우
    statusCode : 400
    errorCode : BadParameterException
    message : bad limit is too big, 잘못된 limit is too big 입니다

결과값 예시

{ 
    rows:
    [ 
        { 
            client_date: 
                { S : "2018-11-12T06:45:03.000Z" },
            nickname: 
                { S : "jake" },
            test5: [Object],
            inDate: 
                { S : "2018-11-12T06:45:03.493Z" },
            updatedAt: 
                { S : "2018-11-12T06:45:03.493Z" },
            test4: [Object],
            test3: [Object],
            test2: [Object],
            test1: [Object] 
        },
        { 
            arr: [Object],
            client_date: [Object],
            nickname: [Object],
            inDate: [Object],
            updatedAt: [Object],
            sex: [Object],
            name: [Object],
            age: [Object] 
        }
    ],
    firstKey: { inDate: { S: '2018-07-05T02:09:21.235Z' } } // 페이징 처리를 위한 offset
}

GetPrivateContents

프라이빗 테이블에 저장되어있는 내용을 불러옵니다. 프라이빗 테이블의 내용은 offset, limit 없이 모든 정보를 반환합니다.

동기

GetPrivateContents( String tableName ) -> BackendReturnObject

// example
Backend.GameInfo.GetPrivateContents ( "tableName" ) ; 

비동기

GetPrivateContents( String tableName, Function callback ) -> void

// example
Backend.GameInfo.GetPrivateContents ( "tableName", ( callback ) => { 
    // 이후 처리
});

Parameter

ValueTypeDescription
tableNamestring게임정보를 불러올 프라이빗 테이블명

Error cases

  • private table 아닌 tableName을 입력한 경우
    statusCode : 400
    errorCode : BadParameterException
    message : bad table, 잘못된 table 입니다

  • 비활성화 된 tableName인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : inactiveTable 사전 조건을 만족하지 않습니다.

GetPublicContentsByGamerIndate

게임 유저 indate를 통해서 public table 에 있는 해당 게임 유저의 게임정보를 가져오는 기능입니다. (게임 유저 indate 받는 법)
이 때, 해당 게임유저의 모든 게임정보를 반환합니다.

동기

GetPublicContentsByGamerIndate( String tableName, String gamerIndate ) -> BackendReturnObject

// example
Backend.GameInfo.GetPublicContentsByGamerIndate("tableName", "gamerIndate");

비동기

GetPublicContentsByGamerIndate( String tableName, String gamerIndate, Function callback ) -> void

// example
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerIndate", ( callback ) => {
    // 이후 처리
});

Parameters

ValueTypeDescription
tableNamestring게임정보를 불러올 퍼블릭 테이블명
gmaerIndatestring게임정보를 불러올 게이머의 indate

Return cases

  • 해당 gamer의 내용이 tableName에 해당하는 table에 존재하지 않는 경우
    statusCode : 200
    message : Success
    returnValue : {“rows”:[]}

  • gamerIndate가 존재하지 gamer의 indate인 경우
    statusCode : 404
    errorCode : NotFoundException
    message : gamer not found, gamer을(를) 찾을 수 없습니다

  • 존재하지 않는 tableName인 경우
    statusCode : 404
    errorCode : NotFoundException
    message : table not found, table을(를) 찾을 수 없습니다

  • public table 아닌 tableName을 입력한 경우
    statusCode : 400
    errorCode : BadParameterException
    message : bad table, 잘못된 table 입니다

  • 비활성화 된 tableName인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : inactiveTable 사전 조건을 만족하지 않습니다.

GetContentsByIndate

특정 테이블에서 저장되어있는 값들 중 하나를 불러옵니다.

동기

GetContentsByIndate ( String tableName , String inDate ) -> BackendReturnObject

// example
String inDate = Backend.GameInfo.GetPrivateContents("tableName").GetReturnValuetoJSON()["rows"][0]["inDate"]["S"].ToString();
Backend.GameInfo.GetContentsByIndate ( "tableName", inDate );	

비동기

GetContentsByIndate ( String tableName , String inDate, Function callback ) -> void

// example
Backend.GameInfo.GetPrivateContents ( "tableName", ( callback ) => { 
    String inDate = callback.GetReturnValuetoJSON()["rows"][0]["inDate"]["S"].ToString();
    Backend.GameInfo.GetContentsByIndate ( "tableName", inDate, ( getContentsCallback ) => { 
        // getContentsCallback 이용해 이후 처리
    }); 
});

Parameters

ValueTypeDescription
tableNamestring게임정보를 불러올 테이블명
inDatestring게임정보를 불러올 row의 indate

Error cases

  • 존재하지 않는 tableName인 경우
    statusCode : 404
    errorCode : NotFoundException
    message : table not found, table을(를) 찾을 수 없습니다

  • 비활성화 된 tableName인 경우
    statusCode : 412
    errorCode : PreconditionFailed
    message : inactiveTable 사전 조건을 만족하지 않습니다.

결과값 예시

{
    row: 
    [ 
        { 
            field2: [Object],
            field1: [Object],
            client_date: 
                { S : "2018-11-12T06:45:03.000Z" },
            nickname: 
                { S : "jake" },
            inDate: 
                { S : "2018-11-12T06:45:03.493Z" },
            updatedAt: 
                { S : "2018-11-12T06:45:03.493Z" }
        } 
    ]
}