Skip to main content

Search Guilds

API to retrieve a list of guilds.

URL Confirmation

This API uses the service-api.playnanoo.com domain.

API Information

  • URL: https://service-api.playnanoo.com/guild/v20230101/search
  • Method: PUT
  • Authentication Required: Yes

Request Parameters

ParameterTypeRequiredDescription
table_codestringRequiredTable code
sort_conditionstringRequiredSort condition (random, point, indate)
sort_typestringRequiredSort type (asc, desc)
auto_joinstringRequiredAuto join filter (Y, N)
limitintRequiredNumber of guilds to retrieve
DeviceInfo Inheritance

The Req class of this API inherits from DeviceInfo. All properties of DeviceInfo are automatically included.

Response Data

Res Class

FieldTypeDescription
ItemsList\<SearchItemModel>Guild list

SearchItemModel Structure

FieldTypeDescription
TableCodestringTable code
UidstringGuild unique ID
NamestringGuild name
PointdoubleGuild points
MasterUuidstringMaster UUID
MasterNicknamestringMaster nickname
CountrystringCountry code
MemberCountintCurrent member count
MemberLimitintMember limit
AutoJoinstringAuto join status
ExtraDatastringExtra data
InDatestringGuild creation date

Unity C# Implementation

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class GuildSearch
{
static string path = "https://service-api.playnanoo.com/guild/v20230101/search";

[Serializable]
public class Req : DeviceInfo
{
public string table_code;
public string sort_condition;
public string sort_type;
public string auto_join;
public int limit;

public IEnumerator Send(
string tableCode,
string sortCondition, // random: random search, point: by points, indate: by creation date
string sortType, // asc: ascending, desc: descending
bool autoJoin,
int limit,
Action<Res> onSuccess,
Action<BaseResponse> onError
)
{
if (!string.IsNullOrEmpty(tableCode)) this.table_code = tableCode;
if (!string.IsNullOrEmpty(sortCondition)) this.sort_condition = sortCondition;
if (!string.IsNullOrEmpty(sortType)) this.sort_type = sortType;
this.auto_join = autoJoin ? "Y" : "N";
this.limit = limit;

yield return HttpClient.Send<Req, Res>(
UnityWebRequest.kHttpVerbPUT,
path,
requireToken: true,
body: this,
onSuccess: onSuccess,
onError: onError
);
}
}

[Serializable]
public class Res : BaseResponse
{
public List<SearchItemModel> Items;
}

[Serializable]
public class SearchItemModel
{
public string TableCode;

public string Uid;

public string Name;

public double Point;

public string MasterUuid;

public string MasterNickname;

public string Country;

public int MemberCount;

public int MemberLimit;

public string AutoJoin;

public string ExtraData;

public string InDate;
}
}

Usage Example

public void SearchGuilds()
{
GuildSearch.Req req = new GuildSearch.Req();

StartCoroutine(req.Send(
tableCode: "guild_table",
sortCondition: "point",
sortType: "desc",
autoJoin: true,
limit: 10,
onSuccess: res =>
{
foreach (var item in res.Items)
{
Debug.Log($"Uid: {item.Uid}, Name: {item.Name}");
Debug.Log($"Point: {item.Point}, MemberCount: {item.MemberCount}/{item.MemberLimit}");
Debug.Log($"Master: {item.MasterNickname}");
}
},
onError: (error) =>
{
Debug.LogError($"Guild search failed: [{error.ErrorCode}] {error.Message}");
}
));
}