Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Add Device Detection Support

未关闭
#51 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
停滞
技术栈
python
领域
api

调研方向

从 stubs/wit_world/imports/device_detection.py 中的 WIT bindings 开始,检查 Viceroy 的 device-detection 实现,以确定可用的测试响应。添加基于函数的 lookup API 和带有向前兼容未知字段的 DeviceInfo dataclass,然后使用合成响应或适当的 xfail 用例测试解析、错误处理以及未匹配的 lookup。

由索引模型根据 Issue 内容生成。

描述

Overview

Add support for Fastly's Device Detection API, which provides device capabilities and characteristics based on User-Agent strings.

WIT Interface

interface device-detection {
  use types.{error};

  /// Returns JSON-encoded device data for a User-Agent string
  lookup: func(user-agent: string, max-len: u64) -> result<option<string>, error>;
}

WIT bindings: stubs/wit_world/imports/device_detection.py

API Design

  • Simple function-based API: lookup(user_agent: str) -> Optional[DeviceInfo]
  • Parse JSON response into @dataclass with _extra field for forward compatibility
  • Return None for lookups that don't match any known device
  • Fields typically include: is_mobile, is_desktop, is_tablet, is_bot, device_type, brand, model, etc.

Forward Compatibility: Use @dataclass with _extra: dict field to capture unknown fields (same pattern as Geo). Provides type hints for known fields while allowing future fields to be accessible.

Cross-SDK Comparison: All SDKs expose simple lookup(user_agent) returning parsed JSON. Rust returns DeviceInfo struct, Go returns *DeviceDetection, JS returns object. All have similar field structure (device type, name, vendor, etc.).

Viceroy Testing

Device detection support in Viceroy is limited or stubbed. The WIT interface exists but may not have full test data support via test.toml configuration like other features.

Tests should either:

  • Use xfail markers for functionality that requires production device detection data
  • Mock the User-Agent lookup if Viceroy provides stub/default responses
  • Focus on API wrapper behavior (parsing, error handling) with synthetic responses

Check Viceroy's device detection implementation to determine exact testing capabilities.

Reference

主要语言
Python
星标
5
派生
1
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

fastly/compute-sdk-python 的其他 Issue

查看 fastly/compute-sdk-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。