Git Product home page Git Product logo

v2exapi's Introduction

V2exAPI

Swift CocoaPods Carthage iOS macOS

中文|English

一个 V2ex API 的 Swift 封装,支持 iOS/macOS,支持 SPM 引入和 async/await 方式调用。

特性

  • SPM(Swift Package Manager) 支持
  • Swift async/await 异步 API
  • V2ex API V1 支持度 100%
  • V2ex API V2 支持度 100%
  • Zero dependency 零三方依赖

API 支持范围

V1

接口 路径 进度
最热主题 /api/topics/hot.json
最新主题 /api/topics/latest.json
节点列表 /api/nodes/list.json
节点信息 /api/nodes/show.json
用户主页 /api/members/show.json
回复列表 /api/replies/show.json

V2

接口 路径 进度
获取最新的提醒 notifications
删除指定的提醒 notifications/:notification_id
获取自己的 Profile member
查看当前使用的令牌 token
获取指定节点 nodes/:node_name
获取指定节点下的主题 nodes/:node_name/topics
获取指定主题 topics/:topic_id
获取指定主题下的回复 topics/:topic_id/replies

安装

Swift Package Manager

通过 Swift Package Manager 安装 V2exAPI 到你的项目,在 Package.swift 中添加:

.package(name: "V2exAPI", url: "[email protected]:isaced/V2exAPI.git", .upToNextMinor(from: "1.0.0")),

在 Xcode 中:

CocoaPods

pod 'V2exAPI', '~> 1.0'

使用

import V2exAPI

// 初始化 V2eXAPI 对象 
let v2ex = V2exAPI(accessToken: "XXXXX-XXXX-XXXX-XXXX-XXXXXXXXX")

// 获取节点列表
let nodes = try await v2ex.nodesList()

// 获取最新主题
let latest = try await v2ex.latestTopics()

// 获取指定节点下的主题列表
let topics = try await v2ex.topics(nodeName: "swift", page: 1)

// 获取指定主题下的回复
let replies = try await v2ex.replies(topicId: 870607, page: 1)

API 参考

API Rate Limit

默认情况下,每个 IP 每小时可以发起的 API 请求数被限制在 120 次。你可以在 API 返回结果的 HTTP 头部找到 Rate Limit 信息:

X-Rate-Limit-Limit: 120
X-Rate-Limit-Reset: 1409479200
X-Rate-Limit-Remaining: 116

对于能够被 CDN 缓存的 API 请求,只有第一次请求时,才会消耗 Rate Limit 配额。

Personal Access Token 申请参考:https://v2ex.com/help/personal-access-token

使用示例

  • V2exOS - 一个用 SwiftUI 编写的 V2ex macOS 客户端

screenshot screenshot

License

V2exAPI 在 MIT 许可下发布的,有关详细信息,请参阅 LICENSE

v2exapi's People

Contributors

fdkevin0 avatar isaced avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.