1. Home
  2. /
  3. Tornado
  4. /
  5. Simple Counter API

Simple Counter API - Tornado Typing CST Test

Loading…

Simple Counter API — Tornado Code

Demonstrates a simple Tornado REST API with a counter using async handlers and in-memory state.

import tornado.ioloop
import tornado.web

count = 0

class CounterHandler(tornado.web.RequestHandler):
	async def get(self):
		self.write({'count': count})

class IncrementHandler(tornado.web.RequestHandler):
	async def post(self):
		global count
		count += 1
		self.write({'count': count})

class DecrementHandler(tornado.web.RequestHandler):
	async def post(self):
		global count
		count -= 1
		self.write({'count': count})

class ResetHandler(tornado.web.RequestHandler):
	async def post(self):
		global count
		count = 0
		self.write({'count': count})

app = tornado.web.Application([
	(r'/counter', CounterHandler),
	(r'/counter/increment', IncrementHandler),
	(r'/counter/decrement', DecrementHandler),
	(r'/counter/reset', ResetHandler)
])

if __name__ == '__main__':
	app.listen(8888)
	tornado.ioloop.IOLoop.current().start()

Tornado Language Guide

Tornado is a Python web framework and asynchronous networking library, designed for handling thousands of simultaneous connections. It excels at real-time web services and long-lived network connections.

Primary Use Cases

  • ▸Real-time chat applications
  • ▸WebSocket-based dashboards
  • ▸High-concurrency APIs and services
  • ▸Long-polling or streaming data endpoints
  • ▸IoT backends and notification services

Notable Features

  • ▸Asynchronous, non-blocking I/O
  • ▸Integrated web framework and networking library
  • ▸Native WebSocket support
  • ▸High concurrency for thousands of clients
  • ▸Flexible request handling with coroutines

Origin & Creator

Tornado was created by FriendFeed engineers (Brett Slatkin, David Cournapeau, and others) in 2009, later maintained by Facebook and the open-source community.

Industrial Note

Tornado is preferred for real-time web services, WebSocket servers, and high-concurrency applications where traditional WSGI frameworks may struggle.

More Tornado Typing Exercises

Tornado Hello World APITornado JSON EchoTornado Query Parameter ExampleTornado Route Parameter ExampleTornado Middleware LoggingTornado Async Delay ExampleTornado 404 ExampleTornado Combined Routes Example

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher