An API Handler that use a DocCommand to respond

Introduced properties

abstract fun command: DocCommand

nitc :: APICommand :: command

Return the doc command to apply for self

Redefined properties

redef type SELF: APICommand

nitc $ APICommand :: SELF

Type of this instance, automatically specialized in every class
redef fun get(req: HttpRequest, res: HttpResponse)

nitc $ APICommand :: get

GET handler.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type BODY: Serializable

popcorn :: Handler :: BODY

Kind of objects returned by deserialize_body
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
private var _body_type: String

popcorn :: Handler :: _body_type

private var _config: NitwebConfig

nitc :: APIHandler :: _config

App config.
private var _validator: nullable DocumentValidator

popcorn :: Handler :: _validator

Validator used to check body input
fun all(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: all

Handler to all kind of HTTP request methods.
private fun body_type: String

popcorn :: Handler :: body_type

private fun body_type=(body_type: String)

popcorn :: Handler :: body_type=

protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
abstract fun command: DocCommand

nitc :: APICommand :: command

Return the doc command to apply for self
fun config: NitwebConfig

nitc :: APIHandler :: config

App config.
protected fun config=(config: NitwebConfig)

nitc :: APIHandler :: config=

App config.
fun delete(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: delete

DELETE handler.
fun deserialize_body(req: HttpRequest, res: HttpResponse): nullable BODY

popcorn :: Handler :: deserialize_body

Deserialize the request body
fun find_mentity(full_name: nullable String): nullable MEntity

nitc :: APIHandler :: find_mentity

Find the MEntity withfull_name`.
fun get(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: get

GET handler.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
private fun handle(route: AppRoute, uri: String, req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: handle

Call all(req, res) if route matches uri.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun mentity_from_uri(req: HttpRequest, res: HttpResponse): nullable MEntity

nitc :: APIHandler :: mentity_from_uri

Try to load the mentity from uri with /:id.
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun paginate(results: JsonArray, count: Int, page: nullable Int, limit: nullable Int): JsonObject

nitc :: APIHandler :: paginate

Paginate a json array
fun post(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: post

POST handler.
fun put(req: HttpRequest, res: HttpResponse)

popcorn :: Handler :: put

PUT handler.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun validate_body(req: HttpRequest, res: HttpResponse): nullable String

popcorn :: Handler :: validate_body

Validate body input with validator
fun validator: nullable DocumentValidator

popcorn :: Handler :: validator

Validator used to check body input
protected fun validator=(validator: nullable DocumentValidator)

popcorn :: Handler :: validator=

Validator used to check body input
package_diagram nitc::APICommand APICommand nitc::APIHandler APIHandler nitc::APICommand->nitc::APIHandler popcorn::Handler Handler nitc::APIHandler->popcorn::Handler ...popcorn::Handler ... ...popcorn::Handler->popcorn::Handler nitc::APICommand... ... nitc::APICommand...->nitc::APICommand

Ancestors

abstract class Handler

popcorn :: Handler

Class handler for a route.
interface Object

core :: Object

The root of the class hierarchy.

Parents

abstract class APIHandler

nitc :: APIHandler

Specific handler for the nitweb API.

Children

class APICatalogContributing

nitc :: APICatalogContributing

Get the list of mpackages contributed by a person
class APICatalogMaintaining

nitc :: APICatalogMaintaining

Get the list of mpackages maintained by a person
class APICatalogPackages

nitc :: APICatalogPackages

Get all the packages from the catalog using pagination
class APICatalogPerson

nitc :: APICatalogPerson

Get a person existing in the catalog
class APICatalogStats

nitc :: APICatalogStats

Get the catalog statistics
class APICatalogTag

nitc :: APICatalogTag

Get the packages related to a tag
class APICatalogTags

nitc :: APICatalogTags

Get all the tags from the catalog
class APIEntity

nitc :: APIEntity

Return the JSON representation of a MEntity.
class APIEntityAll

nitc :: APIEntityAll

List all definitions accessible from a MEntity.
class APIEntityAncestors

nitc :: APIEntityAncestors

List MEntity ancestors
class APIEntityChildren

nitc :: APIEntityChildren

List MEntity children
class APIEntityCode

nitc :: APIEntityCode

Return the source code of MEntity.
class APIEntityDefs

nitc :: APIEntityDefs

List definitions of a MEntity.
class APIEntityDescendants

nitc :: APIEntityDescendants

List MEntity descendants
class APIEntityDoc

nitc :: APIEntityDoc

Return the full MDoc of a MEntity.
class APIEntityIntros

nitc :: APIEntityIntros

List intro definitions of a MEntity.
class APIEntityLinearization

nitc :: APIEntityLinearization

Linearize super definitions of a MClassDef or a MPropDef if any.
class APIEntityMetadata

nitc :: APIEntityMetadata

Get the package metadata
class APIEntityParents

nitc :: APIEntityParents

List MEntity parents
class APIEntityRedefs

nitc :: APIEntityRedefs

List redef definitions of a MEntity.
class APIEntityUML

nitc :: APIEntityUML

Return the UML diagram for MEntity.
class APIInheritanceGraph

nitc :: APIInheritanceGraph

Return the inheritance graph for MEntity.
class APIIniClone

nitc :: APIIniClone

Get the package Git clone command from the ini file
class APIIniContribFile

nitc :: APIIniContribFile

Get the package contrib file
class APIIniContribFileContent

nitc :: APIIniContribFileContent

Get the package contrib file content
class APIIniContributors

nitc :: APIIniContributors

Get the package contributors from the ini file
class APIIniDesc

nitc :: APIIniDesc

Get the package description from the ini file
class APIIniGit

nitc :: APIIniGit

Get the package Git URL from the ini file
class APIIniIssues

nitc :: APIIniIssues

Get the package issues URL from the ini file
class APIIniLicense

nitc :: APIIniLicense

Get the package license from the ini file
class APIIniLicenseFile

nitc :: APIIniLicenseFile

Get the package license file
class APIIniLicenseFileContent

nitc :: APIIniLicenseFileContent

Get the package license file content
class APIIniMaintainer

nitc :: APIIniMaintainer

Get the package maintainer from the ini file
class APIList

nitc :: APIList

List all mentities.
class APIRandom

nitc :: APIRandom

Return a random list of MEntities.

Descendants

class APISearch

nitc :: APISearch

Search mentities from a cmd string.

Class definitions

nitc $ APICommand
# An API Handler that use a DocCommand to respond
abstract class APICommand
	super APIHandler

	# Return the doc command to apply for self
	fun command: DocCommand is abstract

	redef fun get(req, res) do
		var command = self.command
		var status = command.http_init(req)
		if status isa CmdError then
			res.api_error(status.http_status_code, status.to_s)
			return
		end
		res.api_json(req, command.to_json)
	end
end
src/doc/api/api_model.nit:66,1--82,3