[{"data":1,"prerenderedAt":840},["ShallowReactive",2],{"navigation-ja":3,"navigation-v1":81,"\u002Fja\u002Fguide\u002Fresponses":146,"\u002Fja\u002Fguide\u002Fresponses-surround":540,"\u002Fja\u002Fguide\u002Fresponses-og":545},[4,55,77],{"title":5,"path":6,"stem":7,"children":8},"ガイド","\u002Fja\u002Fguide","ja\u002F1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":6,"stem":7},"イントロダクション",{"title":12,"path":13,"stem":14},"プロローグ","\u002Fja\u002Fguide\u002Fprologue","ja\u002F1.guide\u002F00.prologue",{"title":16,"path":17,"stem":18},"はじめに","\u002Fja\u002Fguide\u002Fgetting-started","ja\u002F1.guide\u002F02.getting-started",{"title":20,"path":21,"stem":22},"モデル","\u002Fja\u002Fguide\u002Fmodels","ja\u002F1.guide\u002F03.models",{"title":24,"path":25,"stem":26},"リレーション","\u002Fja\u002Fguide\u002Frelationships","ja\u002F1.guide\u002F04.relationships",{"title":28,"path":29,"stem":30},"フック","\u002Fja\u002Fguide\u002Fhooks","ja\u002F1.guide\u002F05.hooks",{"title":32,"path":33,"stem":34},"検索","\u002Fja\u002Fguide\u002Fsearch","ja\u002F1.guide\u002F06.search",{"title":36,"path":37,"stem":38},"バッチ操作","\u002Fja\u002Fguide\u002Fbatch-operations","ja\u002F1.guide\u002F07.batch-operations",{"title":40,"path":41,"stem":42},"クエリパラメータ","\u002Fja\u002Fguide\u002Fquery-parameters","ja\u002F1.guide\u002F08.query-parameters",{"title":44,"path":45,"stem":46},"セキュリティ","\u002Fja\u002Fguide\u002Fsecurity","ja\u002F1.guide\u002F09.security",{"title":48,"path":49,"stem":50},"レスポンス","\u002Fja\u002Fguide\u002Fresponses","ja\u002F1.guide\u002F10.responses",{"title":52,"path":53,"stem":54},"仕様書","\u002Fja\u002Fguide\u002Fspecifications","ja\u002F1.guide\u002F11.specifications",{"title":56,"path":57,"stem":58,"children":59},"TypeScript SDK","\u002Fja\u002Ftypescript-sdk","ja\u002F2.typescript-sdk\u002F01.index",[60,61,64,68,71,74],{"title":10,"path":57,"stem":58},{"title":16,"path":62,"stem":63},"\u002Fja\u002Ftypescript-sdk\u002Fgetting-started","ja\u002F2.typescript-sdk\u002F02.getting-started",{"title":65,"path":66,"stem":67},"設定","\u002Fja\u002Ftypescript-sdk\u002Fconfiguration","ja\u002F2.typescript-sdk\u002F03.configuration",{"title":20,"path":69,"stem":70},"\u002Fja\u002Ftypescript-sdk\u002Fmodels","ja\u002F2.typescript-sdk\u002F04.models",{"title":24,"path":72,"stem":73},"\u002Fja\u002Ftypescript-sdk\u002Frelationships","ja\u002F2.typescript-sdk\u002F05.relationships",{"title":40,"path":75,"stem":76},"\u002Fja\u002Ftypescript-sdk\u002Fquery-parameters","ja\u002F2.typescript-sdk\u002F06.query-parameters",{"title":78,"path":79,"stem":80},"スクリーンキャスト","\u002Fja\u002Fscreencasts","ja\u002Fscreencasts",[82,125],{"title":83,"path":84,"stem":85,"children":86},"Guide","\u002Fv1.x\u002Fguide","v1.x\u002F1.guide\u002F01.index",[87,89,93,97,101,105,109,113,117,121],{"title":88,"path":84,"stem":85},"Introduction",{"title":90,"path":91,"stem":92},"Getting Started","\u002Fv1.x\u002Fguide\u002Fgetting-started","v1.x\u002F1.guide\u002F02.getting-started",{"title":94,"path":95,"stem":96},"Models","\u002Fv1.x\u002Fguide\u002Fmodels","v1.x\u002F1.guide\u002F03.models",{"title":98,"path":99,"stem":100},"Relationships","\u002Fv1.x\u002Fguide\u002Frelationships","v1.x\u002F1.guide\u002F04.relationships",{"title":102,"path":103,"stem":104},"Hooks","\u002Fv1.x\u002Fguide\u002Fhooks","v1.x\u002F1.guide\u002F05.hooks",{"title":106,"path":107,"stem":108},"Search","\u002Fv1.x\u002Fguide\u002Fsearch","v1.x\u002F1.guide\u002F06.search",{"title":110,"path":111,"stem":112},"Batch Operations","\u002Fv1.x\u002Fguide\u002Fbatch-operations","v1.x\u002F1.guide\u002F07.batch-operations",{"title":114,"path":115,"stem":116},"Query Parameters","\u002Fv1.x\u002Fguide\u002Fquery-parameters","v1.x\u002F1.guide\u002F08.query-parameters",{"title":118,"path":119,"stem":120},"Security","\u002Fv1.x\u002Fguide\u002Fsecurity","v1.x\u002F1.guide\u002F09.security",{"title":122,"path":123,"stem":124},"Responses","\u002Fv1.x\u002Fguide\u002Fresponses","v1.x\u002F1.guide\u002F10.responses",{"title":56,"path":126,"stem":127,"children":128},"\u002Fv1.x\u002Ftypescript-sdk","v1.x\u002F2.typescript-sdk\u002F01.index",[129,130,133,137,140,143],{"title":88,"path":126,"stem":127},{"title":90,"path":131,"stem":132},"\u002Fv1.x\u002Ftypescript-sdk\u002Fgetting-started","v1.x\u002F2.typescript-sdk\u002F02.getting-started",{"title":134,"path":135,"stem":136},"Configuration","\u002Fv1.x\u002Ftypescript-sdk\u002Fconfiguration","v1.x\u002F2.typescript-sdk\u002F03.configuration",{"title":94,"path":138,"stem":139},"\u002Fv1.x\u002Ftypescript-sdk\u002Fmodels","v1.x\u002F2.typescript-sdk\u002F04.models",{"title":98,"path":141,"stem":142},"\u002Fv1.x\u002Ftypescript-sdk\u002Frelationships","v1.x\u002F2.typescript-sdk\u002F05.relationships",{"title":114,"path":144,"stem":145},"\u002Fv1.x\u002Ftypescript-sdk\u002Fquery-parameters","v1.x\u002F2.typescript-sdk\u002F06.query-parameters",{"id":147,"title":48,"body":148,"description":534,"extension":535,"links":536,"meta":537,"navigation":226,"path":49,"seo":538,"stem":50,"__hash__":539},"docs_ja\u002Fja\u002F1.guide\u002F10.responses.md",{"type":149,"value":150,"toc":532},"minimark",[151,163,175,189,199,510,528],[152,153,154,155,162],"p",{},"Orionは、Eloquentモデルと、APIクライアントに実際に返されるレスポンスとの間の変換レイヤーとして",[156,157,161],"a",{"href":158,"rel":159},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Feloquent-resources",[160],"nofollow","APIリソース","を使用します。",[152,164,165,166,170,171,174],{},"これらのクラスが自動的に解決されるようにするには、",[167,168,169],"code",{},"App\\Http\\Resources\\\u003Cmodel>Resource","または",[167,172,173],{},"App\\Http\\Resources\\\u003Cmodel>CollectionResource","というパターンに従う必要があります。",[152,176,177,178,181,182,170,185,188],{},"たとえば、",[167,179,180],{},"App\\Models\\Message","モデルがある場合、関連するリソースクラスは",[167,183,184],{},"App\\Http\\Resources\\MessageResource",[167,186,187],{},"App\\Http\\Resources\\MessageCollectionResource","になります。",[152,190,191,192,170,195,198],{},"アプリ内のリソースクラス名がこの命名規則に従っていない場合や、より明示的に指定したい場合は、コントローラーの",[167,193,194],{},"protected $resource",[167,196,197],{},"protected $collectionResource","プロパティに、完全修飾リソースクラス名を設定します。",[200,201,206],"pre",{"className":202,"code":203,"language":204,"meta":205,"style":205},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?php\n\nnamespace App\\Http\\Controllers\\Api;\n\nuse App\\Models\\Message;\nuse App\\Http\\Resources\\CustomMessageResource;\nuse App\\Http\\Resources\\CustomMessageCollectionResource;\n\nclass MessagesController extends ApiController\n{\n    \u002F**\n     * @var string $model\n     *\u002F\n    protected $model = Message::class;\n\n    \u002F**\n     * @var string $resource\n     *\u002F\n    protected $resource = CustomMessageResource::class;\n\n    \u002F**\n     * @var string $collectionResource\n     *\u002F\n    protected $collectionResource = CustomMessageCollectionResource::class;\n}\n","php","",[167,207,208,221,228,258,263,282,305,327,332,348,354,361,377,383,408,413,418,430,435,456,461,466,478,483,504],{"__ignoreMap":205},[209,210,213,217],"span",{"class":211,"line":212},"line",1,[209,214,216],{"class":215},"sMK4o","\u003C?",[209,218,220],{"class":219},"sTEyZ","php\n",[209,222,224],{"class":211,"line":223},2,[209,225,227],{"emptyLinePlaceholder":226},true,"\n",[209,229,231,235,239,242,245,247,250,252,255],{"class":211,"line":230},3,[209,232,234],{"class":233},"sbssI","namespace",[209,236,238],{"class":237},"sBMFI"," App",[209,240,241],{"class":215},"\\",[209,243,244],{"class":237},"Http",[209,246,241],{"class":215},[209,248,249],{"class":237},"Controllers",[209,251,241],{"class":215},[209,253,254],{"class":237},"Api",[209,256,257],{"class":215},";\n",[209,259,261],{"class":211,"line":260},4,[209,262,227],{"emptyLinePlaceholder":226},[209,264,266,269,271,273,275,277,280],{"class":211,"line":265},5,[209,267,268],{"class":233},"use",[209,270,238],{"class":219},[209,272,241],{"class":215},[209,274,94],{"class":219},[209,276,241],{"class":215},[209,278,279],{"class":219},"Message",[209,281,257],{"class":215},[209,283,285,287,289,291,293,295,298,300,303],{"class":211,"line":284},6,[209,286,268],{"class":233},[209,288,238],{"class":219},[209,290,241],{"class":215},[209,292,244],{"class":219},[209,294,241],{"class":215},[209,296,297],{"class":219},"Resources",[209,299,241],{"class":215},[209,301,302],{"class":219},"CustomMessageResource",[209,304,257],{"class":215},[209,306,308,310,312,314,316,318,320,322,325],{"class":211,"line":307},7,[209,309,268],{"class":233},[209,311,238],{"class":219},[209,313,241],{"class":215},[209,315,244],{"class":219},[209,317,241],{"class":215},[209,319,297],{"class":219},[209,321,241],{"class":215},[209,323,324],{"class":219},"CustomMessageCollectionResource",[209,326,257],{"class":215},[209,328,330],{"class":211,"line":329},8,[209,331,227],{"emptyLinePlaceholder":226},[209,333,335,339,342,345],{"class":211,"line":334},9,[209,336,338],{"class":337},"spNyl","class",[209,340,341],{"class":237}," MessagesController",[209,343,344],{"class":337}," extends",[209,346,347],{"class":237}," ApiController\n",[209,349,351],{"class":211,"line":350},10,[209,352,353],{"class":215},"{\n",[209,355,357],{"class":211,"line":356},11,[209,358,360],{"class":359},"sHwdD","    \u002F**\n",[209,362,364,367,371,374],{"class":211,"line":363},12,[209,365,366],{"class":359},"     * ",[209,368,370],{"class":369},"svl4J","@var",[209,372,373],{"class":369}," string",[209,375,376],{"class":359}," $model\n",[209,378,380],{"class":211,"line":379},13,[209,381,382],{"class":359},"     *\u002F\n",[209,384,386,389,392,395,398,401,404,406],{"class":211,"line":385},14,[209,387,388],{"class":337},"    protected",[209,390,391],{"class":215}," $",[209,393,394],{"class":219},"model ",[209,396,397],{"class":215},"=",[209,399,400],{"class":237}," Message",[209,402,403],{"class":215},"::",[209,405,338],{"class":233},[209,407,257],{"class":215},[209,409,411],{"class":211,"line":410},15,[209,412,227],{"emptyLinePlaceholder":226},[209,414,416],{"class":211,"line":415},16,[209,417,360],{"class":359},[209,419,421,423,425,427],{"class":211,"line":420},17,[209,422,366],{"class":359},[209,424,370],{"class":369},[209,426,373],{"class":369},[209,428,429],{"class":359}," $resource\n",[209,431,433],{"class":211,"line":432},18,[209,434,382],{"class":359},[209,436,438,440,442,445,447,450,452,454],{"class":211,"line":437},19,[209,439,388],{"class":337},[209,441,391],{"class":215},[209,443,444],{"class":219},"resource ",[209,446,397],{"class":215},[209,448,449],{"class":237}," CustomMessageResource",[209,451,403],{"class":215},[209,453,338],{"class":233},[209,455,257],{"class":215},[209,457,459],{"class":211,"line":458},20,[209,460,227],{"emptyLinePlaceholder":226},[209,462,464],{"class":211,"line":463},21,[209,465,360],{"class":359},[209,467,469,471,473,475],{"class":211,"line":468},22,[209,470,366],{"class":359},[209,472,370],{"class":369},[209,474,373],{"class":369},[209,476,477],{"class":359}," $collectionResource\n",[209,479,481],{"class":211,"line":480},23,[209,482,382],{"class":359},[209,484,486,488,490,493,495,498,500,502],{"class":211,"line":485},24,[209,487,388],{"class":337},[209,489,391],{"class":215},[209,491,492],{"class":219},"collectionResource ",[209,494,397],{"class":215},[209,496,497],{"class":237}," CustomMessageCollectionResource",[209,499,403],{"class":215},[209,501,338],{"class":233},[209,503,257],{"class":215},[209,505,507],{"class":211,"line":506},25,[209,508,509],{"class":215},"}\n",[511,512,514],"note",{"icon":513},"i-lucide-lightbulb",[152,515,516,519,520,523,524,527],{},[167,517,518],{},"Orion\\Http\\Resources\\Resource","クラスと",[167,521,522],{},"Orion\\Http\\Resources\\CollectionResource","クラスの両方で、便利な",[167,525,526],{},"toArrayWithMerge","メソッドが利用できます。ぜひ確認してみてください。",[529,530,531],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .svl4J, html code.shiki .svl4J{--shiki-light:#F76D47;--shiki-light-font-style:italic;--shiki-default:#F78C6C;--shiki-default-font-style:italic;--shiki-dark:#F78C6C;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":205,"searchDepth":212,"depth":223,"links":533},[],"モデルがJSONレスポンスに変換される仕組みについて学びます。","md",null,{},{"title":48,"description":534},"fcxnJQZV-AEaZu1O6Dkl4FuNgLzgpSSUP3_XVe17sMc",[541,543],{"title":44,"path":45,"stem":46,"description":542,"children":-1},"認証、認可、バリデーションについて学びます。",{"title":52,"path":53,"stem":54,"description":544,"children":-1},"OpenAPI仕様書を自動生成する方法を学びます。",{"id":546,"title":122,"body":547,"description":834,"extension":535,"links":536,"meta":835,"navigation":226,"path":836,"seo":837,"stem":838,"__hash__":839},"docs_en\u002F1.guide\u002F10.responses.md",{"type":149,"value":548,"toc":832},[549,557,566,576,584,816,830],[152,550,551,552,556],{},"Orion uses ",[156,553,555],{"href":158,"rel":554},[160],"API Resources"," as a transformation layer between Eloquent models and actual responses that are returned to your API clients.",[152,558,559,560,562,563,565],{},"To allow these classes to be resolved automatically, they should follow the pattern: ",[167,561,169],{}," or ",[167,564,173],{},".",[152,567,568,569,571,572,562,574,565],{},"For example, if you have an ",[167,570,180],{}," model, the related resource class would be ",[167,573,184],{},[167,575,187],{},[152,577,578,579,562,581,583],{},"If resource class names in your app do not follow this naming convention or if you just would like to be more explicit, set ",[167,580,194],{},[167,582,197],{}," property on controller to a fully-qualified resource class name.",[200,585,586],{"className":202,"code":203,"language":204,"meta":205,"style":205},[167,587,588,594,598,618,622,638,658,678,682,692,696,700,710,714,732,736,740,750,754,772,776,780,790,794,812],{"__ignoreMap":205},[209,589,590,592],{"class":211,"line":212},[209,591,216],{"class":215},[209,593,220],{"class":219},[209,595,596],{"class":211,"line":223},[209,597,227],{"emptyLinePlaceholder":226},[209,599,600,602,604,606,608,610,612,614,616],{"class":211,"line":230},[209,601,234],{"class":233},[209,603,238],{"class":237},[209,605,241],{"class":215},[209,607,244],{"class":237},[209,609,241],{"class":215},[209,611,249],{"class":237},[209,613,241],{"class":215},[209,615,254],{"class":237},[209,617,257],{"class":215},[209,619,620],{"class":211,"line":260},[209,621,227],{"emptyLinePlaceholder":226},[209,623,624,626,628,630,632,634,636],{"class":211,"line":265},[209,625,268],{"class":233},[209,627,238],{"class":219},[209,629,241],{"class":215},[209,631,94],{"class":219},[209,633,241],{"class":215},[209,635,279],{"class":219},[209,637,257],{"class":215},[209,639,640,642,644,646,648,650,652,654,656],{"class":211,"line":284},[209,641,268],{"class":233},[209,643,238],{"class":219},[209,645,241],{"class":215},[209,647,244],{"class":219},[209,649,241],{"class":215},[209,651,297],{"class":219},[209,653,241],{"class":215},[209,655,302],{"class":219},[209,657,257],{"class":215},[209,659,660,662,664,666,668,670,672,674,676],{"class":211,"line":307},[209,661,268],{"class":233},[209,663,238],{"class":219},[209,665,241],{"class":215},[209,667,244],{"class":219},[209,669,241],{"class":215},[209,671,297],{"class":219},[209,673,241],{"class":215},[209,675,324],{"class":219},[209,677,257],{"class":215},[209,679,680],{"class":211,"line":329},[209,681,227],{"emptyLinePlaceholder":226},[209,683,684,686,688,690],{"class":211,"line":334},[209,685,338],{"class":337},[209,687,341],{"class":237},[209,689,344],{"class":337},[209,691,347],{"class":237},[209,693,694],{"class":211,"line":350},[209,695,353],{"class":215},[209,697,698],{"class":211,"line":356},[209,699,360],{"class":359},[209,701,702,704,706,708],{"class":211,"line":363},[209,703,366],{"class":359},[209,705,370],{"class":369},[209,707,373],{"class":369},[209,709,376],{"class":359},[209,711,712],{"class":211,"line":379},[209,713,382],{"class":359},[209,715,716,718,720,722,724,726,728,730],{"class":211,"line":385},[209,717,388],{"class":337},[209,719,391],{"class":215},[209,721,394],{"class":219},[209,723,397],{"class":215},[209,725,400],{"class":237},[209,727,403],{"class":215},[209,729,338],{"class":233},[209,731,257],{"class":215},[209,733,734],{"class":211,"line":410},[209,735,227],{"emptyLinePlaceholder":226},[209,737,738],{"class":211,"line":415},[209,739,360],{"class":359},[209,741,742,744,746,748],{"class":211,"line":420},[209,743,366],{"class":359},[209,745,370],{"class":369},[209,747,373],{"class":369},[209,749,429],{"class":359},[209,751,752],{"class":211,"line":432},[209,753,382],{"class":359},[209,755,756,758,760,762,764,766,768,770],{"class":211,"line":437},[209,757,388],{"class":337},[209,759,391],{"class":215},[209,761,444],{"class":219},[209,763,397],{"class":215},[209,765,449],{"class":237},[209,767,403],{"class":215},[209,769,338],{"class":233},[209,771,257],{"class":215},[209,773,774],{"class":211,"line":458},[209,775,227],{"emptyLinePlaceholder":226},[209,777,778],{"class":211,"line":463},[209,779,360],{"class":359},[209,781,782,784,786,788],{"class":211,"line":468},[209,783,366],{"class":359},[209,785,370],{"class":369},[209,787,373],{"class":369},[209,789,477],{"class":359},[209,791,792],{"class":211,"line":480},[209,793,382],{"class":359},[209,795,796,798,800,802,804,806,808,810],{"class":211,"line":485},[209,797,388],{"class":337},[209,799,391],{"class":215},[209,801,492],{"class":219},[209,803,397],{"class":215},[209,805,497],{"class":237},[209,807,403],{"class":215},[209,809,338],{"class":233},[209,811,257],{"class":215},[209,813,814],{"class":211,"line":506},[209,815,509],{"class":215},[511,817,818],{"icon":513},[152,819,820,821,823,824,826,827,829],{},"There is a handy ",[167,822,526],{}," method available on both ",[167,825,518],{}," and ",[167,828,522],{}," classes - take a look there 😉",[529,831,531],{},{"title":205,"searchDepth":212,"depth":223,"links":833},[],"Learn how models are transformed into JSON responses.",{},"\u002Fguide\u002Fresponses",{"title":122,"description":834},"1.guide\u002F10.responses","7PQ2D2FbZcb2loyyQ4Ue_Zrm3zVDij8eoBNZymAs1Bg",1784394454135]