面向Java开发人员的Scala指南

在撰写本文时,夏季即将结束,新的学年就要开始,Twitter 的服务器上不 断涌现出世界各地的网虫和非网虫们发布的更新。对于我们很多身在北美的人来 说,从海滩聚会到足球,从室外娱乐到室内项目,各种各样的想法纷至沓来。为 了跟上这种形势,是时候重访 Scitter 这个用于访问 Twitter 的 Scala 客户 机库了。

如果 到目前为止 您一直紧随 Scitter 的开发,就会知道,这个库现在能够 利用各种不同的 Twitter API 查看用户的好友、追随者和时间线,以及其他内 容。但是,这个库还不具备发布状态更新的能力。在这最后一篇关于 Scitter 的文章中,我们将丰富这个库的功能,增加一些有趣的内容(终止和评价)功能 和重要方法 update()、show() 和 destroy()。在此过程中,您将了解更多关于 Twitter API 的知识,它与 Scala 之间的交互如何,您还将了解如何克服两者 之间不可避免的编程挑战。

注意,当您看到本文的时候,Scitter 库将位于一个 公共源代码控制库 中 。当然,我还将在本文中包括 源代码,但是要知道,源代码库可能发生改变。 换句话说,项目库中的代码与您在这里看到的代码可能略有不同,或者有较大的 不同。

POST 到 Twitter

到目前为止,我们的 Scitter 开发主要集中于一些基于 HTTP GET 的操作, 这主要是因为这些调用非常容易,而我想轻松切入 Twitter API。将 POST 和 DELETE 操作添加到库中对于可见性来说迈出了重要一步。到目前为止,可以在 个人 Twitter 帐户上运行单元测试,而其他人并不知道您要干什么。但是,一 旦开始发送更新消息,那么全世界都将知道您要运行 Scitter 单元测试。

如果继续测试 Scitter,那么需要在 Twitter 上创建自己的 “测试” 帐户 。(也许用 Twitter API 编程的最大缺点是没有任何合适的测试或模拟工具。 )

目前的进展

在开始着手这个库的新的 UPDATE 功能之前,我们来回顾一下到目前为止我 们已经创建的东西。

大致来说,Scitter 库分为 4 个部分:

来回发送的请求和响应类型(User、Status 等),包含在 API 中;它们被 建模为 case 类。

OptionalParam 类型,同样在 API 中的某些地方;也被建模为 case 类,这 些 case 类继承基本的 OptionalParam 类型。

Scitter 对象,用于通信基础和对 Twitter 的匿名(无身份验证)访问。

Scitter 类,存放一个用户名和密码,用于访问给定 Twitter 帐户时进行验 证。

注意,在这最后一篇文章中,为了使文件大小保持在相对合理的范围内,我 将请求/响应类型分开放到不同的文件中。

终止和评价

那么,现在我们清楚了目标。我们将通过实现两个 “只读” Twitter API 来达到目标:end_session API(结束用户会话)和 rate_limit_status API( 描述在某一特定时段内用户帐户还剩下多少可用的 post)。

end_session API 与它的同胞 verify_credentials 相似,也是一个非常简 单的 API:只需用一个经过验证的请求调用它,它将 “结束” 当前正在运行的 会话。在 Scitter 类上实现它非常容易,如清单 1 所示:

清单 1. 在 Scitter 上实现 end_session

package  com.tedneward.scitter

{

  import org.apache.commons.httpclient._, auth._, methods._,  params._

  import scala.xml._

  // ...

  class Scitter

  {

   /**

    *

    */ 

   def endSession : Boolean =

   {

    val (statusCode, statusBody) =

     Scitter.execute ("http://twitter.com/account/end_session.xml",

      username, password)

    statusCode == 200

   }

  }

}

好吧,我失言了。也不是那么容易。

时间: 2024-11-10 01:09:47

面向Java开发人员的Scala指南的相关文章

面向Java开发人员的Ajax:结合Direct Web Remoting使用Ajax

理解 Ajax 编程的基本知识 是重要的,但是如果正在构建复杂的用户界面,那么能够在更高层次的抽象上工作也很重要.在面向 Java 开发人员的 Ajax 系列的第 3 篇文章中,我在上个月的 Ajax 的数据序列化技术 基础之上,介绍一种可以避免繁琐的 Java 对象序列化细节的技术. 在 上一篇文章 中,我介绍了如何用 JavaScript 对象标注(JSON)以一种在客户机上容易转化成 JavaScript 对象的格式对数据进行序列化.有了这个设置,就可以用 JavaScript 代码调用远

面向Java开发人员的Ajax:探索 Google Web Toolkit

最近发布的 Google Web Toolkit (GWT) 是一组全面的 API 和工具,它支持用户几乎完全使用 Java 代码来创建动态 Web 应用程序.Philip McCarthy 回到了他广受欢迎的面向 Java 开发人员的 Ajax 系列,向您展示 GWT 能做什么,并帮助您确定它是否适合您. GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GU

面向Java开发人员的Ajax:Java对象序列化(1)

ajax|java对象 本文我们讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用程序上.在传统的 Web 应用程序中,视图组件由 JSP 或者其他表示技术(例如 Velocity 模板)构成. 这些表示组件动态地生成全新的 HTML 页面,替代用户以前正在查看的页面,从而更新用户界面.但是,在 Java Web 应用程序使用 Ajax UI 的情况

面向Java开发人员的Ajax: Ajax的Java对象序列化

在这个系列的 第一篇文章 中,我介绍了 Ajax 的构造块: 如何用 JavaScript XMLHttpRequest 对象从 Web 页面向服务器发送异步请求. 如何用 Java servlet 处理和响应请求(向客户机返回 XML 文档). 如何在客户端用响应文档更新页面视图. 这一次,我将继续讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用

面向Java开发人员的Ajax:构建动态的Java应用程序

在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java 开发人员来说也是一个严峻的挑战.在这个系列中,作者 Philip McCarthy 介绍了一种创建动态应用程序体验的开创性方式.Ajax(异步 JavaScript 和 XML)是一种编程技术,它允许为基于 Java 的 Web 应用程序把 Java 技术.XML 和 JavaScript 组合起来,从而打破页面重载的范式. Ajax(即异步 JavaScript 和 XML)是一种 Web 应用程序开发的手段,它采用

面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit

ajax|google|web GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GUI,然后编译它们,从而在用户的 Web 浏览器上显示它们. 与一般的 Web 应用程序开发体验相比,使用 GWT 更接近于使用 Swing 或 SWT 进行开发,它还试图将 HTTP 协议和 HTML DOM 模型抽象出去.实际上,应用程序最终几乎总是会呈现在 Web 浏览器中

面向Java开发人员db4o指南:数组和集合

处理多样性关系 舒适的家庭生活会导致一个或更多 "小人儿" 降临到这个家庭.但是,在增加小孩到家庭中之前,先确保 Person 真正有地方可住.给他们一个工作场所,或者还有一个很好的夏日度假屋.一个 Address 类型应该可以解决所有这三个地方. 清单 1. 添加一个 Address 类型到 Person 类中 package com.tedneward.model; public class Address { public Address() { } public Address

面向 Java 开发人员的 Ajax: Google Web Toolkit 入门

简介: Ajax 被用于创建更加动态和交互性更好的 Web 应用程序.Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用.本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤. ## Ajax简介 ## Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML.CSS.JavaScript.XMLHttpReq

面向Java开发人员的Ajax:使用Google Web Toolkit开发Ajax

Ajax技术是当前开发web应用的非常热门的技术,也是Web 2.0的一个重要的组成部分.然而如果用传统的方式Javascript进行Ajax开发的话,就会使得应用程序非常难以进行调试,从而降低了生产效率.Google最近推出的GWT有望为我们解决这个难题,GWT是一个开发Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码.GWT的编译器会把用于开发客户端的Java代码转化成Javascript和Html,而程序员不用关心这一转换过程.这样程序员就可以在自己喜欢的Java I