게임 정보 읽기

뒤끝 SDK는 뒤끝 서버와 통신하며 실제 게임 정보를 읽는 기능을 제공합니다.
게임 정보 읽기를 통해 리턴된 값을 다루는 방법은 해당 문서를 참고해주세요

GetTableList

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

동기

GetTableList() -> BackendReturnObject

// example
Backend.GameInfo.GetTableList () ;

비동기

GetTableList( Function callback ) -> void

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

결과값 예시

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

GetPublicContents

퍼블릭 테이블에 저장되어있는 내용을 불러옵니다.
자기 자신과 다른 사람의 퍼블릭 테이블 정보를 모두 불러옵니다.
한번에 최대 100개까지만 불러올 수 있습니다.

동기

GetPublicContents( String tableName ) -> BackendReturnObject
GetPublicContents( String tableName, int limit ) -> BackendReturnObject
GetPublicContents( String tableName, string firstKey ) -> BackendReturnObject
GetPublicContents( String tableName, string firstKey, int limit ) -> BackendReturnObject
GetPublicContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder ) -> BackendReturnObject

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

비동기

GetPublicContents( String tableName, Function callback ) -> void
GetPublicContents( String tableName, int limit, Function callback ) -> void
GetPublicContents( String tableName, string firstKey, Function callback ) -> void
GetPublicContents( String tableName, string firstKey, int limit, Function callback ) -> void
GetPublicContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder, Function callback ) -> void

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

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
firstKeystring(Optional) 불러올 게임정보의 시작점string.Empty
limitint(Optional) 불러올 게임정보 row 수. 최대 100. 0일 경우, 100개 반환0
sortOrderTableSortOrder(Optional) TableSortOrder.DESC (내림차순) or TableSortOrder.ASC(오름차순)TableSortOrder.DESC

Success cases

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 입니다

GetMyPublicContents

자기 자신의 퍼블릭 테이블에 저장되어 있는 데이터를 불러옵니다.
한번에 최대 100개까지 불러올 수 있습니다.

동기

GetMyPublicContents( String tableName ) -> BackendReturnObject
GetMyPublicContents( String tableName, int limit ) -> BackendReturnObject
GetMyPublicContents( String tableName, string firstKey ) -> BackendReturnObject
GetMyPublicContents( String tableName, string firstKey, int limit ) -> BackendReturnObject
GetMyPublicContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder ) -> BackendReturnObject

// example
Backend.GameInfo.GetMyPublicContents ( "tableName" ) ;
Backend.GameInfo.GetMyPublicContents ( "tableName", 20 ) ;
Backend.GameInfo.GetMyPublicContents ( "tableName", "firstKey" ) ;
Backend.GameInfo.GetMyPublicContents ( "tableName", "firstKey", 20 ) ;
Backend.GameInfo.GetMyPublicContents ( "tableName", "firstKey", 20, TableSortOrder.DESC ) ;

비동기

GetMyPublicContents( String tableName, Function callback ) -> void
GetMyPublicContents( String tableName, int limit, Function callback ) -> void
GetMyPublicContents( String tableName, string firstKey, Function callback ) -> void
GetMyPublicContents( String tableName, string firstKey, int limit, Function callback ) -> void
GetMyPublicContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder, Function callback ) -> void

// example
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetMyPublicContents, "tableName", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetMyPublicContents, "tableName", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetMyPublicContents, "tableName", "firstKey", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetMyPublicContents, "tableName", "firstKey", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetMyPublicContents, "tableName", "firstKey", 20, TableSortOrder.DESC, ( callback ) =>
{
    // 이후 처리
});

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
firstKeystring(Optional) 불러올 게임정보의 시작점string.Empty
limitint(Optional) 불러올 게임정보 row 수. 최대 100. 0일 경우, 100개 반환0
sortOrderTableSortOrder(Optional) TableSortOrder.DESC (내림차순) or TableSortOrder.ASC(오름차순)TableSortOrder.DESC

Success cases

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 입니다

GetPrivateContents

자기자신의 프라이빗 테이블에 저장되어있는 내용을 불러옵니다.
한번에 최대 100개까지만 불러올 수 있습니다.

동기

GetPrivateContents( String tableName ) -> BackendReturnObject
GetPrivateContents( String tableName, int limit ) -> BackendReturnObject
GetPrivateContents( String tableName, string firstKey ) -> BackendReturnObject
GetPrivateContents( String tableName, string firstKey, int limit ) -> BackendReturnObject
GetPrivateContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder ) -> BackendReturnObject

// example
Backend.GameInfo.GetPrivateContents ( "tableName" ) ;
Backend.GameInfo.GetPrivateContents ( "tableName", 20 ) ;
Backend.GameInfo.GetPrivateContents ( "tableName", "firstKey" ) ;
Backend.GameInfo.GetPrivateContents ( "tableName", "firstKey", 20 ) ;
Backend.GameInfo.GetPrivateContents ( "tableName", "firstKey", 20, TableSortOrder.DESC ) ;

비동기

GetPrivateContents( String tableName, Function callback ) -> void
GetPrivateContents( String tableName, int limit, Function callback ) -> void
GetPrivateContents( String tableName, string firstKey, Function callback ) -> void
GetPrivateContents( String tableName, string firstKey, int limit, Function callback ) -> void
GetPrivateContents( String tableName, string firstKey, int limit, TableSortOrder sortOrder, Function callback ) -> void

// example
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", "firstKey", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", "firstKey", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", "firstKey", 20, TableSortOrder.DESC, ( callback ) =>
{
    // 이후 처리
});

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
firstKeystring(Optional) 불러올 게임정보의 시작점string.Empty
limitint(Optional) 불러올 게임정보 row 수. 최대 100. 0일 경우, 100개 반환0
sortOrderTableSortOrder(Optional) TableSortOrder.DESC (내림차순) or TableSortOrder.ASC(오른차순)TableSortOrder.DESC

Success cases

Error cases

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

  • private 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 입니다

GetPublicContentsByGamerIndate

게임 유저 indate를 통해서 public table 에 있는 해당 게임 유저의 게임정보를 가져오는 기능입니다. (게임 유저 indate 받는 법)
이 때, 해당 게임유저의 모든 게임정보를 반환합니다.
한번에 최대 100개 까지 불러올 수 있습니다.

닷넷3
닷넷3의 경우 비동기방식으로 함수를 사용할 때 TableSortOrder 인자를 사용할 수 없습니다.

동기

GetPublicContentsByGamerIndate( String tableName, String gamerIndate ) -> BackendReturnObject
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, int limit ) -> BackendReturnObject
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey ) -> BackendReturnObject
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey, int limit ) -> BackendReturnObject
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey, int limit, TableSortOrder sortOrder ) -> BackendReturnObject

// example
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerInDate" ) ;
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerInDate", 20 ) ;
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerInDate", "firstKey" ) ;
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerInDate", "firstKey", 20 ) ;
Backend.GameInfo.GetPublicContentsByGamerIndate ( "tableName", "gamerInDate", "firstKey", 20, TableSortOrder.DESC ) ;

비동기

GetPublicContentsByGamerIndate( String tableName, String gamerIndate, Function callback ) -> void
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, int limit, Function callback ) -> void
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey, Function callback ) -> void
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey, int limit, Function callback ) -> void
GetPublicContentsByGamerIndate( String tableName, String gamerIndate, string firstKey, int limit, TableSortOrder sortOrder, Function callback ) -> void

// example
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContentsByGamerIndate, "tableName", "gamerInDate", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContentsByGamerIndate, "tableName", "gamerInDate", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContentsByGamerIndate, "tableName", "gamerInDate", "firstKey", ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContentsByGamerIndate, "tableName", "gamerInDate", "firstKey", 20, ( callback ) =>
{
    // 이후 처리
});
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContentsByGamerIndate, "tableName", "gamerInDate", "firstKey", 20, TableSortOrder.DESC, ( callback ) =>
{
    // 이후 처리
});

Parameters

ValueTypeDescriptionDefault
tableNamestring게임정보를 불러올 퍼블릭 테이블명
gamerIndatestring게임정보를 불러올 게이머의 inDate
firstKeystring(Optional) 불러올 게임정보의 시작점string.Empty
limitint(Optional) 불러올 게임정보 row 수. 최대 100. 0일 경우, 100개 반환0
sortOrderTableSortOrder(Optional) TableSortOrder.DESC (내림차순) or TableSortOrder.ASC(오름차순)TableSortOrder.DESC

Success cases

Error cases

  • 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 사전 조건을 만족하지 않습니다.

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

퍼블릭 / 프라이빗 테이블 공통적인 결과값 예시

반환된 returnValue는 BackendReturnObject.GetReturnValueToJson() 함수로 Json 객체로 변환할 수 있습니다.

  • 조회에 성공하였으나 테이블이 존재하지 않는 경우
    statusCode : 200
    message : Success
    returnValue : {“rows”:[]}

  • 결과가 존재하는 경우
    statusCode : 200
    message : Success
    returnValue : 아래 결과 값 및 해당 문서 참고

{
    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
}

firstKey 값 얻기 (페이징 처리를 하기 위한 선행 단계)

리스트의 페이징 처리를 위해서는 firstKey가 필요합니다.
테이블 정보 조회 후 현재 반환한 데이터 다음에 데이터가 존재할 경우 firstKey가 함께 반환됩니다.
firstKey는 BackendReturnObject.FirstKeyString() 함수로 쉽게 반환할 수 있습니다.
리스트의 마지막 내용인 경우, 더 이상 firstKey 가 존재하지 않습니다.

동기

BackendReturnObject bro = Backend.GameInfo.GetPublicContents("tableName");
String firstKey = bro.FirstKeyString();

비동기

String firstKey = String.Empty;
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContents, "tableName", callback => {
    firstKey = callback.FirstKeyString();
});

페이징 처리 하기

반환된 firstKey키 값을 테이블을 조회할 때 기입하면 해당 인덱스 다음부터 테이블을 조회할 수 있습니다.
이 값에 해당하는 row 다음 값을 시작으로 리스트를 불러옵니다. (firstKey 데이터는 조회하는 테이블에 포함되지 않습니다.)

동기

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

비동기

// 다음페이지 넘어갈 때 firstKey를 offset으로 하여 다시 읽어옴
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPublicContents, "tableName", firstKey, callback =>
{
    // 이후 처리
});

GetContentsByIndate

특정 테이블에서 저장되어있는 값들 중 하나를 불러옵니다.
inDate는 gamer의 inDate가 아닌 테이블의 inDate 입니다.

동기

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
BackendAsyncClass.BackendAsync(Backend.GameInfo.GetPrivateContents, "tableName", ( callback ) => 
{
    String inDate = callback.GetReturnValuetoJSON()["rows"][0]["inDate"]["S"].ToString();
    BackendAsyncClass.BackendAsync(Backend.GameInfo.GetContentsByIndate, "tableName", inDate, ( getContentsCallback ) => 
    {
        // getContentsCallback 이용해 이후 처리
    });
});

Parameters

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

Success case

{
    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" }
        }
    ]
}

Error cases

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

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