Go SDK

عميل Go اصطلاحي مع دعم context. بدون reflection. يدعم Go 1.21+.

التثبيت

go get github.com/kalimalab/kalimalab-go

تهيئة العميل

package mainimport (    "os"    "github.com/kalimalab/kalimalab-go")func main() {    client := kalimalab.New(os.Getenv("KALIMALAB_API_KEY"))}

الطرق

client.Words.Get

جلب التفاصيل الكاملة لكلمة واحدة.

func (c *Client) Words.Get(ctx context.Context, slug string) (*Word, error)
ParamTypeReqDescription
slugstringYesslug الكلمة أو معرّفها
word, err := client.Words.Get(ctx, "كتب")if err != nil { log.Fatal(err) }fmt.Println(word.MeaningEN) // "to write"
client.Words.Daily

احصل على كلمة اليوم.

func (c *Client) Words.Daily(ctx context.Context) (*Word, error)
word, err := client.Words.Daily(ctx)fmt.Println(word.Word) // 'الأَمَل'
client.Words.Validate

تحقق من صحة الكلمات العربية في قاعدة البيانات.

func (c *Client) Words.Validate(ctx context.Context, words []string) (*ValidationResult, error)
ParamTypeReqDescription
words[]stringYesحتى 100 كلمة
result, _ := client.Words.Validate(ctx, []string{"كتب", "xyz", "مدرسة"})fmt.Println(result.Valid)   // [كتب مدرسة]
client.Text.Analyze

حلّل مقطعاً من النص العربي.

func (c *Client) Text.Analyze(ctx context.Context, text string) (*TextAnalysis, error)
ParamTypeReqDescription
textstringYesنص عربي (حد أقصى 5,000 حرف)
analysis, _ := client.Text.Analyze(ctx, "بسم الله الرحمن الرحيم")fmt.Println(analysis.WordCount) // 4

معالجة الأخطاء

result, err := client.Words.Search(ctx, params)if err != nil {    var kErr *kalimalab.Error    if errors.As(err, &kErr) {        fmt.Println(kErr.Status)  // 401, 429, 500        fmt.Println(kErr.Code)    // "unauthorized", "rate_limited"        fmt.Println(kErr.Message)    }}
جميع الطرق تقبل context.Context كأول وسيطة. مرّر context مع موعد نهائي أو إلغاء للتحكم في مهل الطلبات.