Как представить вики статью в App Inventor: различия между версиями

Материал из Поле цифровой дидактики
 
(не показано 27 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Scripting Tutorials
{{Scripting Tutorials
|Description=У нас есть имя статьи в вики и мы хотим в App Inventor об этой статье рассказать
|Description=У нас есть имя статьи в вики и мы хотим в App Inventor об этой статье рассказать. Пользователь набирает имя статьи и на экране появляется:
# Краткое содержание (description)
# Редакторы
# Ссылки из статьи
# Ссылки к статье
|Field_of_knowledge=NetSci, Информатика, Мобильное обучение
|Field_of_knowledge=NetSci, Информатика, Мобильное обучение
|Возрастная категория=12
|Возрастная категория=12
Строка 6: Строка 10:
|Environment=App Inventor, TinyDB, PlantUML, Песочница MediaWiki API
|Environment=App Inventor, TinyDB, PlantUML, Песочница MediaWiki API
}}
}}
== Структура MediaWiki ==
* '''[[Диаграмма]]'''
<uml>
@startuml
package "Article text and association information" #DDDDDD {
class REDIRECT {
RD_FROM
RD_TITLE
}
class PAGE_RESTRICTION {
PR_PGE
PR_TYPE
}
class PAGE {
PAGE_ID
PAGE_NAMESPACE
PAGE_COUNTER
PAGE_IS_REDIRECT
PAGE_LEN
}
class RECENTCHANGES {
RC_ID
RC_TIMESTAMP
RC_TITLE
RC_NEW
RC_TYPE
RC_DELETED
}
class REVISION {
REV_ID
REV_USER
REV_USER_TEXT
}
}
package "User accounts" #FFA07A  {
class MWUSER  {
USER_ID
USER_NAME
}
class IPBLOCKS {
IPB_ID
  IPB_CREATE_ACCOUNT
}
class USER_GROUPS {
}
}
package "Links" #C1F1E7  {
 
class  PAGELINKS {
PL_FROM
PL_TO
PL_TITLE
    }
  class CATEGORYLINKS {
CL_FROM
CL_TO
}
}
package "Images & Media" #AEB6BF  {
  class IMAGE {
IMG_NAME
IMG_SIZE
IMG_HEIGHT
IMG_WIDTH
    }
  class IMAGELINKS {
IL_TO
IL_FLOM
}
}
PAGE <|.. REDIRECT
PAGE <|.. REVISION
RECENTCHANGES <|.. MWUSER
PAGELINKS .. PAGE
CATEGORYLINKS .. PAGE
PAGELINKS ..  IMAGELINKS
IMAGE <|.. MWUSER
@enduml
</uml>
== Диаграмма запроса ==
{{#ask: [[Диаграмма последовательности]] | ?Description }}
<uml>
@startuml
participant AppInvenor as F4
actor      User      as F0
participant API_SandBox as F1
participant MediaWiki_API as F2
database    MediaWiki  as F3
F0 -> F1: Test Request
F1 -> F0: API Response
F0 -> F2: Work Request
F2 -> F3: Translated Request
F3 -> F2: Results
F2 -> F0: Translated Response
F0 -> F4: Rules
F4 -> F2: Work Request
F2 -> F3: Translated Request
F3 -> F2: Results
F2 -> F4: Translated Response
@enduml
</uml>
== MediaWiki площадки ==
* [[Как использовать песочницу MediaWiki API]]
; Площадки на платформе MediaWiki + их [[API]] + [[MediaWiki API]]


== Подбор необходимых параметров для запроса ==
== Подбор необходимых параметров для запроса ==
; Пример - Используем [[Песочница MediaWiki API]]
; Пример - Используем [[Песочница MediaWiki API]]
#  Структура БД [[MediaWiki]]
# Выбираем query параметры
# Выбираем query параметры
##
## [https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=description%7Cextracts%7Cinfo&titles=%D0%91%D0%BE%D0%B9%20%D1%83%20%D0%A8%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B0&formatversion=2 Titles + Extracts]
##
 
##
; main
##
::  action=query
:::prop=description
:::prop=info
:::prop=links
:::prop=linkshere
:::prop=contributors
::format=json
 
; Например [[API]]
https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=description%7Ccontributors%7Clinks%7Clinkshere%7Cinfo&titles=API&formatversion=2
{"continue":{"pccontinue":"26799|784","plcontinue":"26799|0|DirectX","lhcontinue":"4591","continue":"||description|info"},
 
"query":{
  "pages":[{"pageid":26799,"ns":0,"title":"API","description":"набор готовых подпрограмм, структур, констант и т. п., предоставляемых
  программным продуктом для использования во внешних программах","descriptionsource":"central","anoncontributors":133,
 
"contributors":[{"userid":1687411,"name":"QBA-bot"},{"userid":1957271,"name":"Рейму Хакурей"},{"userid":1413071,"name":"Q-bit array"},{"userid":393283,"name":"EmausBot"},{"userid":847425,"name":"Луговкин"},{"userid":1137329,"name":"DimaBot"},{"userid":2088697,"name":"InternetArchiveBot"},{"userid":306292,"name":"Vort"},{"userid":636679,"name":"Lesless"},{"userid":208088,"name":"Xqbot"}],"links":[{"ns":0,"title":"BIOS"},{"ns":0,"title":"BioAPI"},{"ns":0,"title":"Bourne shell"},{"ns":0,"title":"C++"},{"ns":0,"title":"Cocoa"},{"ns":0,"title":"Cygwin"},{"ns":0,"title":"Direct3D"},{"ns":0,"title":"DirectDraw"},{"ns":0,"title":"DirectMusic"},{"ns":0,"title":"DirectSound"}],"linkshere":[{"pageid":265,"ns":0,"title":"Google (компания)","redirect":false},{"pageid":911,"ns":0,"title":"Вычислительная сеть","redirect":false},{"pageid":916,"ns":0,"title":"BeOS","redirect":false},{"pageid":969,"ns":0,"title":"OS/2","redirect":false},{"pageid":973,"ns":0,"title":"PHP","redirect":false},{"pageid":1683,"ns":0,"title":"C Sharp","redirect":false},{"pageid":3689,"ns":0,"title":"Суперкомпьютер","redirect":false},{"pageid":4015,"ns":0,"title":"MediaWiki","redirect":false},{"pageid":4047,"ns":0,"title":"XML","redirect":false},{"pageid":4553,"ns":0,"title":"FreeBSD","redirect":false}],"contentmodel":"wikitext","pagelanguage":"ru","pagelanguagehtmlcode":"ru","pagelanguagedir":"ltr","touched":"2023-11-14T20:20:39Z","lastrevid":133376794,"length":20714}]}}
 
== Представляем результаты запроса в виде диаграммы  ==
[[Файл:Papert wiki api5.png|600px]]


== Представляем результаты в виде диаграммы  ==
; Используем [[PlantUML]]
; Используем [[PlantUML]]


{| {{prettytable}}
|-
!{{Hl2}}|  Нет статьи
!{{Hl2}}| Правильный запрос
|-
| [[Файл:Something Wr.png|500px]]
| [[Файл:Something R Papert.png|500px]]
|}


https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=description%7Cextracts%7Cinfo&titles=%D0%91%D0%BE%D0%B9%20%D1%83%20%D0%A8%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B0&formatversion=2
== App Inventor ==
* [https://gallery.appinventor.mit.edu/?galleryid=861e0a5f-b7f8-418e-b2d4-fed2b73b6b57 Первая версия]
* [https://gallery.appinventor.mit.edu/?galleryid=0d9d5a31-f951-405f-a4ae-fdfe9480fc7e Вторая версия ]
* [https://gallery.appinventor.mit.edu/?galleryid=a1501cfc-f78d-4c4c-a6ed-1d26821e319a третья версия]
 
[[Файл:Description mediawiki api.png|600px]]
 
== Пояснения ==


== App Inventor ==
; [[JSON]] + [[API]]
* https://gallery.appinventor.mit.edu/?galleryid=861e0a5f-b7f8-418e-b2d4-fed2b73b6b57
: [[YouTube]] - https://www.youtube.com/watch?v=y1dGXscDPMw

Текущая версия на 10:46, 29 ноября 2023

Описание У нас есть имя статьи в вики и мы хотим в App Inventor об этой статье рассказать. Пользователь набирает имя статьи и на экране появляется:
  1. Краткое содержание (description)
  2. Редакторы
  3. Ссылки из статьи
  4. Ссылки к статье
Область знаний NetSci, Информатика, Мобильное обучение
Область использования (ISTE)
Возрастная категория 12


Поясняющее видео
Близкие рецепту понятия API, JSON
Среды и средства для приготовления рецепта: App Inventor, TinyDB, PlantUML, Песочница MediaWiki API


Структура MediaWiki

Диаграмма запроса

 Description
Диаграмма последовательностиДиаграмма последовательности (англ. sequence diagram) — UML-диаграмма, на которой для некоторого набора объектов на единой временной оси показан жизненный цикл объекта (создание-деятельность-уничтожение некой сущности) и взаимодействие акторов (действующих лиц) информационной системы в рамках прецедента. Основными элементами диаграммы последовательности являются обозначения объектов (прямоугольники с названиями объектов), вертикальные «линии жизни» (англ. lifeline), отображающие течение времени, прямоугольники, отражающие деятельность объекта или исполнение им определенной функции (прямоугольники на пунктирной «линии жизни» — фокусы контроля, англ. focus of control), и стрелки, показывающие обмен сигналами или сообщениями между объектами.

MediaWiki площадки

Площадки на платформе MediaWiki + их API + MediaWiki API

Подбор необходимых параметров для запроса

Пример - Используем Песочница MediaWiki API
  1. Структура БД MediaWiki
  2. Выбираем query параметры
    1. Titles + Extracts
main
action=query
prop=description
prop=info
prop=links
prop=linkshere
prop=contributors
format=json
Например API

https://ru.wikipedia.org/w/api.php?action=query&format=json&prop=description%7Ccontributors%7Clinks%7Clinkshere%7Cinfo&titles=API&formatversion=2

{"continue":{"pccontinue":"26799|784","plcontinue":"26799|0|DirectX","lhcontinue":"4591","continue":"||description|info"},
"query":{
  "pages":[{"pageid":26799,"ns":0,"title":"API","description":"набор готовых подпрограмм, структур, констант и т. п., предоставляемых 
  программным продуктом для использования во внешних программах","descriptionsource":"central","anoncontributors":133,
"contributors":[{"userid":1687411,"name":"QBA-bot"},{"userid":1957271,"name":"Рейму Хакурей"},{"userid":1413071,"name":"Q-bit array"},{"userid":393283,"name":"EmausBot"},{"userid":847425,"name":"Луговкин"},{"userid":1137329,"name":"DimaBot"},{"userid":2088697,"name":"InternetArchiveBot"},{"userid":306292,"name":"Vort"},{"userid":636679,"name":"Lesless"},{"userid":208088,"name":"Xqbot"}],"links":[{"ns":0,"title":"BIOS"},{"ns":0,"title":"BioAPI"},{"ns":0,"title":"Bourne shell"},{"ns":0,"title":"C++"},{"ns":0,"title":"Cocoa"},{"ns":0,"title":"Cygwin"},{"ns":0,"title":"Direct3D"},{"ns":0,"title":"DirectDraw"},{"ns":0,"title":"DirectMusic"},{"ns":0,"title":"DirectSound"}],"linkshere":[{"pageid":265,"ns":0,"title":"Google (компания)","redirect":false},{"pageid":911,"ns":0,"title":"Вычислительная сеть","redirect":false},{"pageid":916,"ns":0,"title":"BeOS","redirect":false},{"pageid":969,"ns":0,"title":"OS/2","redirect":false},{"pageid":973,"ns":0,"title":"PHP","redirect":false},{"pageid":1683,"ns":0,"title":"C Sharp","redirect":false},{"pageid":3689,"ns":0,"title":"Суперкомпьютер","redirect":false},{"pageid":4015,"ns":0,"title":"MediaWiki","redirect":false},{"pageid":4047,"ns":0,"title":"XML","redirect":false},{"pageid":4553,"ns":0,"title":"FreeBSD","redirect":false}],"contentmodel":"wikitext","pagelanguage":"ru","pagelanguagehtmlcode":"ru","pagelanguagedir":"ltr","touched":"2023-11-14T20:20:39Z","lastrevid":133376794,"length":20714}]}}

Представляем результаты запроса в виде диаграммы

Papert wiki api5.png

Используем PlantUML


Нет статьи Правильный запрос
Something Wr.png Something R Papert.png

App Inventor

Description mediawiki api.png

Пояснения

JSON + API
YouTube - https://www.youtube.com/watch?v=y1dGXscDPMw