Code Monkey home page Code Monkey logo

nforumsdk's Introduction

nForumSDK

基本说明

本项目是基于nForum API编写的的SDK,用于开发Java以及Android应用。经测试适用于北邮人论坛天地人大虎踞龙盘虽然使用了nForum的Web页面,但是并未使用nForumAPI,不适用本SDK。水木社区的API经过较大程度的定制,可能某些功能并不适用,请使用者自行进行测试。

快速上手

使用本SDK,你需要创建一个nForumSDK对象,然后get到不同的Service,例如:

NForumSDK nSDK = new NForumSDK(Host.HOST_BYR_TEST, "username", "password");
BoardService boardService = nSDK.getBoardService();

然后你就可以使用这个Service提供的方法了:

Board board = boardService.getBoard("SL", new ParamOption());
LogUtils.d("Board name", board.name);

请注意,天地人大和nForum的测试站点不需要appkey,但是北邮人论坛是需要appkey的,此时需要使用可以传入appkey的构造函数创建nForumSDK对象:

NForumSDK nSDK = new NForumSDK(Host.HOST_BYR, "yourAppkey", "username", "password");

可参考 GetDemo

数据结构

本SDK将API返回的元数据封装成了类,但是由于API不同的接口返回的元数据并不完全一致(例如/board/:name返回的文章元数据并没有像/artilce/:board/:id返回的文章元数据一样包含content字段),请在调用时检查属性是否为null。数据结构中还有一些易忽略的bug:

  • /section返回的「section_count」、「section」字段和/section/:name返回的「sub_section」、「board」字段均被整合进了Section类,使用时注意区分。
  • Article类和/user/query/id返回的user元数据当该用户不存在时(或已注销)仅返回一个String,此时User类中除id字段其他字段均为null,使用前请检查。

参数使用

使用Service调用接口时,如果该接口有可选参数供调用,需要传入一个ParamOption类,如:

public Board getBoard(String name, ParamOption params) {...}

如果你不需要使用参数(使用默认参数),传入一个空的ParamOption对象即可,下面的例子中使用了默认为20的count参数和默认为1的page:

Board board = boardService.getBoard("SL", new ParamOption());

如果你需要自定义参数,调用ParamOption类的addParam方法添加参数即可,该方法被设计成返回自身以供链式调用,下面的例子中自定义count参数为5,page参数为2:

ParamOption params = new ParamOption()
                    .addParams("count", "5")
                    .addParams("page", "2");
Board board = boardService.getBoard("SL", params);

可参考 ParamDemo

错误提示

当遇到论坛的内部错误时(例如帖子已被删除、已经投票后再次投票等),API会返回一个包含错误信息的JSON,会作为NForumException抛出,例如:

com.dss886.nForumSDK.http.NForumException: 你已经投过票了
at com.dss886.nForumSDK.http.PostMethod.postJSON(PostMethod.java:83)
at com.dss886.nForumSDK.service.VoteService.vote(VoteService.java:91)
at com.dss886.nForumSDKDemo.Main.main(Main.java:26)

上传文件

//TODO

关于本项目

本项目是由dss886发起的开源项目,欢迎Fork及发起Pull Request。

如有任何问题,请给我发送邮件[email protected],或在北邮人论坛上给我发送站内信:dss886。

nforumsdk's People

Contributors

dss886 avatar

Watchers

 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.