Fork me on GitHub

O curso, no contexto da API referenciado como course é a entidade principal da hierarquia do Redu. Ele é uma entidade autocontida de conteúdo e usuários. Ou seja, usuários que têm acesso a um determinado curso terão permissão para visualizar todas suas disciplinas, módulos e aulas.

GET /api/courses/:id

Retorna o curso em questão.

Autorização

É necessário estar matriculado no curso para visualizar este recurso.

Parâmetros

Parâmetro Descrição Restrições
id ID do curso N/A

Exemplo

Requisição:

GET /api/environments/462

Resposta:

{
  "workload": 40,
    "links": [
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web",
      "rel": "self"
    },
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web/spaces",
      "rel": "spaces"
    },
    {
      "href": "http://www.redu.com.br/api/environments/guiocavalcanti",
      "rel": "environment"
    },
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web/enrollments",
      "rel": "enrollments"
    }
  ],
    "name": "Pacote Web",
    "description": "O foco é estudar os conceitos e tecnologias utilizadas no desenvolvimento da parte da Web que funciona dentro do navegador.",
    "created_at": "2012-01-13T12:11:22-02:00",
    "id": 462,
    "path": "pacote-web"
}

POST /api/environments/:environment_id/courses

Cria um novo curso no AVA especificado. No Redu a matrícula é realizada no curso. Ou seja, os usuários que possuem acesso a um curso também podem visualizar suas disciplinas, módulos e aulas.

Autorização

Para criar um Curso é necessário ter papel administrativo no AVA.

Parâmetros

Parâmetro Descrição Restrições
environment_id ID ou path do AVA N/A
course[name] Nome do curso Máximo 40 caracteres; deve ser único
course[path] Nome que aparecerá na barra de endereço Deve respeitar a seguinte regex: ^[-_A-Za-z0-9]*$; Deve ser único dentro de um AVA
course[description] Descrição do curso Máximo de 400 caracteres
course[workload] Carga horária do curso em horas Deve ser numérico

Exemplo

Requisição:

POST /api/environments/foo/courses

Payload:

{
  "course" :
  {
    "name" : "meu novo curso",
      "path" : "meu-novo-curso",
  }
}

Resposta:

{
  "links": [
  {
    "href": "http://www.redu.com.br/api/courses/meu-novo-curso",
      "rel": "self"
  },
  {
    "href": "http://www.redu.com.br/api/courses/meu-novo-curso/spaces",
    "rel": "spaces"
  },
  {
    "href": "http://www.redu.com.br/api/environments/www",
    "rel": "environment"
  },
  {
    "href": "http://www.redu.com.br/api/courses/meu-novo-curso/enrollments",
    "rel": "enrollments"
  }
  ],
    "name": "meu novo curso",
    "created_at": "2012-09-10T09:28:09-03:00",
    "id": 1137,
    "path": "meu-novo-curso"
}

PUT /api/courses/:id

Atualiza as informações do curso especificado. É importante perceber que não há proteção para a atualização do path. Ou seja, alguma aplicação pode acessar este recurso utilizando o path e, caso o mesmo seja modificado, o código HTTP 404 (not found) será lançado.

Autorização

Para criar um Curso é necessário ter papel administrativo no AVA.

Parâmetros

Parâmetro Descrição Restrições
course[name] Nome do curso Máximo 40 caracteres; deve ser único
course[path] Nome que aparecerá na barra de endereço Deve respeitar a seguinte regex: ^[-_A-Za-z0-9]*$; Deve ser único dentro de um AVA
course[description] Descrição do curso Máximo de 400 caracteres
course[workload] Carga horária do curso em horas Deve ser numérico

GET /api/environments/:environment_id/courses

Retorna uma lista de cursos criados dentro do AVA em questão.

Autorização

É necessário estar matriculado em pelo menos um Curso do AVA.

Parâmetros

Parâmetro Descrição Restrições
environment_id ID ou path do AVA N/A

Exemplo

Requisição: GET /api/environments/guiocavalcanti/courses

Resposta:

[
{
  "workload": 40,
    "links": [
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web",
      "rel": "self"
    },
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web/spaces",
      "rel": "spaces"
    },
    {
      "href": "http://www.redu.com.br/api/environments/guiocavalcanti",
      "rel": "environment"
    },
    {
      "href": "http://www.redu.com.br/api/courses/pacote-web/enrollments",
      "rel": "enrollments"
    }
  ],
    "name": "Pacote Web",
    "description": "O foco é estudar os conceitos e tecnologias utilizadas no desenvolvimento da parte da Web que funciona dentro do navegador.",
    "created_at": "2012-01-13T12:11:22-02:00",
    "id": 462,
    "path": "pacote-web"
},
{
  "workload": 40,
  "links": [
  {
    "href": "http://www.redu.com.br/api/courses/pacote-web-2012-2",
    "rel": "self"
  },
  {
    "href": "http://www.redu.com.br/api/courses/pacote-web-2012-2/spaces",
    "rel": "spaces"
  },
  {
    "href": "http://www.redu.com.br/api/environments/guiocavalcanti",
    "rel": "environment"
  },
  {
    "href": "http://www.redu.com.br/api/courses/pacote-web-2012-2/enrollments",
    "rel": "enrollments"
  }
  ],
    "name": "Pacote Web 2012-2",
    "description": "O foco é estudar os conceitos e tecnologias utilizadas no desenvolvimento da parte da Web que funciona dentro do navegador.",
    "created_at": "2012-07-16T21:39:02-03:00",
    "id": 968,
    "path": "pacote-web-2012-2"
}
]

DELETE /api/courses/:id

Remove o curso em questão. Todos os usuários serão desmatriculados e perderão o acesso ao recurso.

Autorização

Para criar um Curso é necessário ter papel administrativo no AVA.

Parâmetros

Parâmetro Descrição Restrições
id ID ou path do curso N/A