Browse Source

Merge pull request #47 from mrwan200/master

Update Thai language
pull/51/head
Algoinde GitHub 3 years ago
parent
commit
751c981ee6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 96 additions and 9 deletions
  1. +96
    -9
      api_th.md

+ 96
- 9
api_th.md View File

@@ -13,8 +13,86 @@

## เริ่มต้นการใช้งาน

คุณสามารถดึงข้อมูล JSON โดยการเข้าจากลิ้งก์ - `https://enka.network/u/[UID]/__data.json` <br />
ยกตัวอย่างเช่น https://enka.network/u/700378769/__data.json
คุณสามารถใช้ Wrapper ที่ถูกสร้างขึ้นโดยคนอื่น หรือใช้ API โดยตรงได้ ซึ่งเป็นเรื่องที่ง่ายมาก ดังนั้นจึงเป็นเรื่องที่ไม่ใช่ยากเลยที่จะต้องจัดข้อมูลหรือ Logic ของคุณโดยจากข้อมูลตอบกลับ โดยการท้ายที่ยิ่งใหญ่ที่สุดก็คือการสำรวจข้อมูลที่ขุดขึ้นมาและการแนบข้อมูลส่งคืนด้วยวิธีถูกต้อง

โปรดดู [Wrappers](#wrappers) สำหรับภาษาที่คุณต้องการ

## ก่อนที่คุณจะส่งข้อมูล

กฏของการใช้งาน API มีอยู่ 3 ข้อ:

1. โปรดอย่าแยก UIDs หรือพยามที่จะส่งข้อมูลเข้าฐานข้อมูลเป็นจำนวนมาก เนื่องจากมี UIDs เป็นจำนวนมาก และ API นี้ไม่มีความสามารถที่จะกระทำข้างต้นได้

2. โปรดกำหนด `User-Agent` ไว้ที่ Header ของ requests เพื่อให้สามารถติดตามและให้ความช่วยเหลือในสิ่งที่เธอต้องการ

3. ใน API นี้มีการจำกัดอัตราแบบ Dynamic บน UID - ถ้าหาก request ของคุณเร็ว คุณจะได้พบกับเวลาตอบกลับที่ช้า และส่งกลับมาด้วย 429 code นั้นหมายความว่าต้องลดความเร็วของการ request หรือติดต่อเราเพื่อให้เพิ่ม ratelimits ให้คุณ แต่ในกรณีส่วนใหญ่นั้นไม่มีความจำเป็นและเกิดจาก code ที่ส่งมานั้นไม่มีประสิทธิภาพมากพอ

4. ในทุก UID request นั้นจะได้รับ `ttl` field - field นี้คือ "จำนวนวินาทีในการแสดงตู้ Showcase ในครั้งถัดไปจาก UID นี้ " จนกว่าจะหมด โดย endpoint จะส่งคืนข้อมูลที่แคชไว้ แต่คุณจะยังคงใช้ ratelimit ของคุณหากคุณกดซ้ำหลายครั้ง โปรดลอง cache ข้อมูลหลังจากหมดเวลาของ `ttl` หรือ prevent requests ไปยัง UID จนกว่า `ttl` จะหมด เราแนะนำให้ใช้ Redis สำหรับสิ่งนี้

หากคุณประสบปัญหาในการทำงานเกี่ยวข้องกับข้อมูล [เซิร์ฟเวอร์ Discord](https://discord.gg/PcSZr5sbn3) เพื่อขอความช่วยเหลือ

## รายการ API

### UID endpoints

#### รับข้อมูลตู้ Showcase โดยข้อมูลผู้เล่นแบบเต็ม

> https://enka.network/api/uid/618285856/

การตอบสนองจะมี `playerInfo` และ `avatarInfoList` `playerInfo` เป็นข้อมูลพื้นฐานเกี่ยวกับบัญชีเกม หากไม่มี `avatarInfoList` แสดงว่า Showcase ของบัญชีนี้ถูกปิดหรือไม่มีตัวละคร

#### รับข้อมูลรายละเอียดข้อมูลผู้เล่นเท่านั้น 
> https://enka.network/api/uid/618285856/?info

การแนบ `?info` ไปกับคำขอ คุณกำลังร้องขอเฉพาะ `playerInfo` คำขอหลักพยายามรับ `avatarInfoList` เสมอเช่นกัน หากคุณต้องการเพียง `playerInfo` โปรดใช้จุดสิ้นสุดนี้ - มันจะเร็วกว่าการรับข้อมูลทั้งหมด

นอกจากนี้คำขอทั้งสองจะมี object `owner` หาก:

1. ผู้ใช้มีบัญชีบนเว็บไซต์
2. ผู้ใช้เพิ่ม UID ลงในโปรไฟล์
3. ผู้ใช้ได้ทำการ verified บัญชี
4. ผู้ใช้ตั้งค่าการมองเห็นเป็น "สาธารณะ"

ข้อมูลเพิ่มเติมเกี่ยวกับบัญชีผู้ใช้ด้านล่าง

#### HTTP response codes
โปรดให้มั่นใจว่าคุณได้ Handle สิ่งเล่านี้ในแอพของคุณอย่างเหมาะสม
```
400 = รูปแบบ UID ไม่ถูกต้อง
404 = ไม่พบผู้เล่น (เซิฟ MHY บอกแบบนี้อ่ะนะ)
424 = บำรุงรักษาเกมส์ / ทุกอย่างจะพังลงหลังจากอัพเดตตัวเกมส์
429 = ถูกจำกัด (ทั้งเซิฟของฉันและเซิฟ MHY)
500 = ข้อผิดพลาดทั่วไป
503 = ฉันเมามากมาย
```

### Endpoint โปรไฟล์

สามารถสร้างบัญชี (โปรไฟล์) บนเว็บไซต์และแนบบัญชีที่มีหลาย ๆ เกม จากนั้น ผู้ใช้จะต้องยืนยันว่าบัญชีนั้นเป็นของพวกเขาผ่านรหัสยืนยันที่อยู่ในลายเซ็น วิธีนี้ทำให้เรามั่นใจได้ว่าบัญชีนั้นเป็นของพวกเขา

ผู้ใช้สามารถสร้าง "snapshot" ภายใต้ชื่อที่กำหนดเอง ซึ่งเรียกว่า "saved builds"

> https://dev.enka.network/api/profile/Algoinde/

รับข้อมูลผู้ใช้

> https://dev.enka.network/api/profile/Algoinde/hoyos/

รับรายการ "hoyos" - บัญชี Genshin และข้อมูลเมตาของพวกเขา วิธีนี้ส่งคืนเฉพาะบัญชีที่ `ยืนยันแล้ว` และ `สาธารณะ` เท่านั้น (ผู้ใช้สามารถซ่อนบัญชีได้ บัญชีที่ไม่ได้รับการยืนยันจะถูกซ่อนโดยค่าเริ่มต้น) แต่ละคีย์ในการตอบกลับคือตัวระบุเฉพาะของ hoyo ซึ่งคุณต้องใช้สำหรับคำขอที่ตามมาเพื่อรับข้อมูลตัวละคร/builds information

> https://dev.enka.network/api/profile/Algoinde/hoyos/4Wjv2e/

ส่งคืนข้อมูลเมตาสำหรับ single hoyo

> https://dev.enka.network/api/profile/Algoinde/hoyos/4Wjv2e/builds/

ส่งคืน saved build สำหรับ hoyo ที่กำหนด นี่คือออบเจ็กต์ของอาร์เรย์ โดยที่คีย์คือ `avatarId` ของตัวละคร และออบเจ็กต์ในอาร์เรย์เป็นโครงสร้างที่แตกต่างกันสำหรับตัวละครที่กำหนด โดยไม่เรียงลำดับเฉพาะเจาะจง (แต่พวกมันมีฟิลด์ `order` ที่คุณต้องเรียงลำดับสำหรับ แสดง).

หากการ build มี `live: true` แสดงว่าไม่ใช่การ build ที่ "บันทึกไว้" แต่เป็นเพียงงานสร้างที่ดึงมาจากงานแสดงเมื่อพวกเขาคลิก "รีเฟรช" เมื่อรีเฟรช build `live` เก่าทั้งหมดจะหายไปและสร้างใหม่ มีเพียงผู้ใช้เท่านั้นที่ตัดสินใจว่าจะทำการรีเฟรชเมื่อใด - ข้อมูลนี้จะไม่เป็นปัจจุบัน

ตามที่ระบุไว้ใน [UID endpoints](#uid-endpoints) เมื่อคุณส่งคำขอ UID คุณจะได้รับวัตถุ `owner` คุณสามารถสร้าง URL โดยใช้ฟิลด์เหล่านี้ในวัตถุ:

`https://dev.enka.network/api/profile/{owner.username}/hoyos/{owner.hash}/builds/`

## โครงสร้างข้อมูล

@@ -165,13 +243,13 @@
| 54 | ความต้านทานลม |
| 55 | ความต้านทานหิน |
| 56 | ความต้านทานนํ้าแข็ง |
| 70 | Pyro Enegry Cost |
| 71 | Electro Energy Cost |
| 72 | Hydro Energy Cost |
| 73 | Dendro Energy Cost |
| 74 | Anemo Energy Cost |
| 75 | Cryo Energy Cost |
| 76 | Geo Energy Cost |
| 70 | อนุธาตุไฟ |
| 71 | อนุธาตุไฟฟ้า |
| 72 | อนุธาตุนํ้า |
| 73 | อนุธาตุไม้ |
| 74 | อนุธาตุลม |
| 75 | อนุธาตุนํ้าแข็ง |
| 76 | อนุธาตุหิน |
| 2000 | พลังชีวิตสูงสุด |
| 2001 | พลังโจมตี |
| 2002 | พลังป้องกัน |
@@ -239,3 +317,12 @@

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชื่อ, คำอธิบาย และ อื่น ๆ นั้น ตรวจสอบได้ที่ [TextMap Data](https://github.com/Dimbreath/GenshinData/tree/master/TextMap) เฉพาะภาษาที่เกมส์รองรับเท่านั้น

## Wrappers

TS/JS - https://www.npmjs.com/package/enkanetwork.js - [Jelosus1](https://github.com/Jelosus2)

TS/JS - https://github.com/yuko1101/enka-network-api - [yuko1101](https://github.com/yuko1101)

Rust - https://github.com/eratou/enkanetwork-rs - [eratou](https://github.com/eratou)

Python - https://github.com/mrwan200/enkanetwork.py - [mrwan200](https://github.com/mrwan200)

Loading…
Cancel
Save