curl --request GET \
--url https://api.followw.app/public/subjectsimport requests
url = "https://api.followw.app/public/subjects"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.followw.app/public/subjects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));[
{
"code": "<string>",
"name": "<string>",
"classrooms": [
{
"number": "<string>",
"semester": "<string>",
"professors": [],
"vacancies": 123,
"occupied": 123,
"sigaa_id": 123,
"schedule": "<string>",
"room": "<string>"
}
],
"hours": 123,
"unit": {
"id": 123,
"code": "<string>",
"name": "<string>"
},
"prerequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"corequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"equivalences": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"curriculum_prerequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"curriculum_corequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"offered_equivalences": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"kind": "mandatory",
"unlocks": [
{
"code": "<string>",
"name": "<string>"
}
],
"curriculum_period": 123,
"recommendation": {
"reasons": [
{
"code": "required",
"value": 123
}
]
}
}
]Buscar matérias com suas turmas
Consulta os componentes e turmas gravados no Followw, sem ir ao SIGAA; os filtros se combinam. Cada componente traz as turmas do semestre consultado, vazias se não houver oferta. Sem q, code e unit, um aluno de graduação logado recebe as recomendações para o próximo semestre, ordenadas e com recommendation; visitantes precisam informar um filtro.
curl --request GET \
--url https://api.followw.app/public/subjectsimport requests
url = "https://api.followw.app/public/subjects"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.followw.app/public/subjects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));[
{
"code": "<string>",
"name": "<string>",
"classrooms": [
{
"number": "<string>",
"semester": "<string>",
"professors": [],
"vacancies": 123,
"occupied": 123,
"sigaa_id": 123,
"schedule": "<string>",
"room": "<string>"
}
],
"hours": 123,
"unit": {
"id": 123,
"code": "<string>",
"name": "<string>"
},
"prerequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"corequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"equivalences": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"curriculum_prerequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"curriculum_corequisites": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"offered_equivalences": [
[
{
"code": "<string>",
"subject": {
"code": "<string>",
"name": "<string>"
}
}
]
],
"kind": "mandatory",
"unlocks": [
{
"code": "<string>",
"name": "<string>"
}
],
"curriculum_period": 123,
"recommendation": {
"reasons": [
{
"code": "required",
"value": 123
}
]
}
}
]Headers
no-cache (ou max-age=0) busca na origem antes de responder; max-age=N aceita cache de até N s; stale-if-error[=N] devolve o cache se a origem falhar; only-if-cached nunca busca (504 sem cache).
Query Parameters
Trecho do código, nome do componente ou docente, de 3 a 32 caracteres, ignorando acentos, maiúsculas e espaços extras.
3 - 32\SCódigo completo do componente, como FGA0003.
^\s*[A-Za-z]+[0-9]+\s*$ID ou código exato da unidade responsável, como 673 ou FCTE.
0 < x <= 2147483647Semestre das turmas, no formato AAAA.P. Sem ele, usa o mais recente gravado.
^[0-9]{4}\.[0-9]$Response
Successful Response
Show child attributes
Show child attributes
Unidade acadêmica: id do SIGAA, code a sigla (ex.: FCTE).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
mandatory, optional, free Show child attributes
Show child attributes
Motivos da posição no ranking, do mais ao menos relevante.
Show child attributes
Show child attributes