ϓϥΠϕʔτ"1*ΫϥΠΞϯτͷݱঢ়
w ࣮ʹ౷Ұײ͕ͳ͍
w +40/Λσίʔυ͚ͨͩ͠ͷσʔλΛฦ͢ͷ͋ΕɺϞσϧ૬ͷΠϯελϯεΛฦ͢ͷ
͋Δ
w ෳͷϦϙδτϦʹࢄ࣮ͯ͠͞Ε͍ͯΔ
w ͦΕͧΕʹ"1*Λୟͨ͘ΊͷɾࢠΫϥε͕ଘࡏ͢Δ
w ผͷϦϙδτϦͷΫϥεΛܧঝͯ͠Δͷ͋Δ
w Ϣχοτςετͷϝϯςφϯείετ
w "1*ͷ༷Λม͑ͨΒQIQWDSͷϑΟΫενϟਓؒͷखͰमਖ਼͠ͳ͍ͱ͍͚ͳ͍
w ಉ͡Α͏ͳςετ͕ͨ͘͞Μ͋Δ
ΫϥΠΞϯτͷ͍৺
(new \Swagger\Client\Api\PetApi)->getPetById(1);
class Swagger\Client\Model\Pet#9 (1) {
protected $container =>
array(6) {
'id' =>
int(1)
'category' =>
class Swagger\Client\Model\Category#10 (1) {
Slide 16
Slide 16 text
ΫϥΠΞϯτͷ͍৺
(new \Swagger\Client\Api\PetApi)->findPetsByStatus('sold')
array(1424) {
[0] =>
class Swagger\Client\Model\Pet#4239 (1) {
}
[1] =>
class Swagger\Client\Model\Pet#4243 (1) {
Slide 17
Slide 17 text
࣮ઓೖΛఆͨ͠՝
wϞσϧʹ࣮ΛՃ͍͑ͨ
w$JSDVJU#SFBLFSΛ͍͍ͨ
w4XBHHFS$PEFHFO$JSDVJU#SFBLFS (BOFTIB
w IUUQTBDLJOUPTIHJUIVCJPCMPHTXBHHFSDPEFHFOXJUIHBOFTIB
Slide 18
Slide 18 text
ϋʔυϧ
Slide 19
Slide 19 text
࣮ݱ·Ͱͷϋʔυϧ
w 0QFO"1*Ͱఆٛ͢Δ
w ҰؾʹΔඞཁແ͍ͷͰͬͯ͘
w ϩʔΧϧڥͷվળ
w 13͕͋ΔͷͰؤுΔʢՃ͓ئ͍͠·͢QSBZʣ
w ࣮ઓೖΛఆͨ͠՝
w .PEFMʹ࣮ΛՃ͍͑ͨ߹Ͳ͏͢Δʁ
w $JSDVJU#SFBLFSΛ͍͍ͨ߹Ͳ͏͢Δʁ
w ӡ༻Ͳ͏͢Δʁ
࣍ͷεϥΠυ
(FOFSBUJPO(BQύλʔϯΛద༻͍͕ͨ͠ʜ
(new \Swagger\Client\Api\PetApi)->getPetById(1);
// class Swagger\Client\Model\Pet
w1FUϞσϧʹखΛೖΕ͍ͨ
w1FU"QJͷฦΓ͕1FUϞσϧ
w1FUͷαϒΫϥεΛར༻͢Δ༨͕ແ͍ʜ
.PEFMʹ࣮ΛՃ͍͑ͨΦϦδφϧςϯϓϨʔτ
class PetApi
{
public function __construct(
ClientInterface $client = null,
Configuration $config = null,
HeaderSelector $selector = null,
$modelClass = null
w ಠࣗͷίʔυੜςϯϓϨʔτΛ༻ҙͯ͠ੜ͞ΕΔίʔυΛΧελϚΠζ͢Δ
w TXBHHFSDPEFHFOHFOFSBUFͷUΦϓγϣϯ
w ࣮ߦ݁Ռͱͯ͠ฦ͢ϞσϧΫϥεΛࠩ͠ସ͑ΒΕΔΑ͏ʹ͢ΔͨΊʹ࠷খݶͷΧ
ελϚΠζΛ͢Δ
Slide 25
Slide 25 text
.PEFMʹ࣮ΛՃ͍͑ͨΦϦδφϧςϯϓϨʔτ
Πϝʔδ
Slide 26
Slide 26 text
.PEFMʹ࣮ΛՃ͍͑ͨϑΝΫτϦ
w ࣮ߦ݁Ռͱͯ͠ฦ͖͢ϞσϧΫϥεΛཧͤ͞Δ
ApiFactory::instantiate(‘PetApi’)->getPetById(1);
// class ……\Model\HandWrittenPet
class ApiFactory
{
private static $map = [‘PetApi’ => ‘HandWrittenPet’];
public static function instantiate($apiClass)
{
……
return new $apiClass(… , $modelClass);
Slide 27
Slide 27 text
.PEFMʹ࣮ΛՃ͍͑ͨϑΝΫτϦ
Πϝʔδ
Slide 28
Slide 28 text
.PEFMʹ࣮ΛՃ͍͑ͨ
ApiFactory::instantiate(‘PetApi’)->getPetById(1);
// class Swagger\Client\Model\HandWrittenPet
(new \Swagger\Client\Api\PetApi)->getPetById(1);
// class Swagger\Client\Model\Pet
ϏϑΥʔ
Ξϑλʔ
ΦϦδφϧςϯϓϨʔτϑΝΫτϦͰ
(FOFSBUJPO(BQύλʔϯΛద༻༷ͨ͠ࢠ
$JSDVJU#SFBLFSΛ͍͍ͨ
class ApiFactory
{
public static function instantiate($apiClass)
{
……
return new $apiClass($httpClientWithCB, … , $modelClass);
w༧Ί$JSDVJU#SFBLFSΛΈࠐΜͩΫϥΠΞϯτ͕ηοτ͞Εͨ"1*Πϯελ
ϯεΛฦ͢
w IUUQTBDLJOUPTIHJUIVCJPCMPHTXBHHFSDPEFHFOXJUIHBOFTIB
w "QJ$MJFOUΛܧঝͨ͠ΫϥεΛ༻ҙ͢Δํ๏
Slide 31
Slide 31 text
$JSDVJU#SFBLFSΛ͍͍ͨ
Πϝʔδ
Slide 32
Slide 32 text
ӡ༻
w ϓϥΠϕʔτ"1*ΫϥΠΞϯτઐ༻ͷϦϙδτϦΛ࡞Δ
w ཁٻ͞ΕΔ1)1όʔδϣϯ͕ҧ͏ͷͰڞ༗ϦϙδτϦʹೖΕΒΕͳ͍
w Ϣχοτςετ
w ਓ͕ؒॻ͘ίʔυ͚ͩςετΛॻ͚ྑ͍ͷͰ
w "1*ఆٛͱੜ͞ΕΔίʔυඞͣҰக͢Δ
w "1*ͷৼΔ͍"1*ଆͷςετ͕อূ͢Δ
w ։ൃͷྲྀΕ
w "1*Λ࣮͢Δʗ0QFO"1*ͷఆٛΛॻ͘
w ΫϥΠΞϯτΛੜ͢ΔʗαϒΫϥεͷ࣮͕ඞཁͳΒΔ ςετΛॻ͘