[{"data":1,"prerenderedAt":1606},["ShallowReactive",2],{"navigation-zh":3,"navigation-v1":81,"\u002Fzh\u002Ftypescript-sdk":146,"\u002Fzh\u002Ftypescript-sdk-surround":949,"\u002Fzh\u002Ftypescript-sdk-og":954},[4,55,77],{"title":5,"path":6,"stem":7,"children":8},"指南","\u002Fzh\u002Fguide","zh\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},"序言","\u002Fzh\u002Fguide\u002Fprologue","zh\u002F1.guide\u002F00.prologue",{"title":16,"path":17,"stem":18},"快速上手","\u002Fzh\u002Fguide\u002Fgetting-started","zh\u002F1.guide\u002F02.getting-started",{"title":20,"path":21,"stem":22},"模型","\u002Fzh\u002Fguide\u002Fmodels","zh\u002F1.guide\u002F03.models",{"title":24,"path":25,"stem":26},"关联","\u002Fzh\u002Fguide\u002Frelationships","zh\u002F1.guide\u002F04.relationships",{"title":28,"path":29,"stem":30},"钩子","\u002Fzh\u002Fguide\u002Fhooks","zh\u002F1.guide\u002F05.hooks",{"title":32,"path":33,"stem":34},"搜索","\u002Fzh\u002Fguide\u002Fsearch","zh\u002F1.guide\u002F06.search",{"title":36,"path":37,"stem":38},"批量操作","\u002Fzh\u002Fguide\u002Fbatch-operations","zh\u002F1.guide\u002F07.batch-operations",{"title":40,"path":41,"stem":42},"查询参数","\u002Fzh\u002Fguide\u002Fquery-parameters","zh\u002F1.guide\u002F08.query-parameters",{"title":44,"path":45,"stem":46},"安全","\u002Fzh\u002Fguide\u002Fsecurity","zh\u002F1.guide\u002F09.security",{"title":48,"path":49,"stem":50},"响应","\u002Fzh\u002Fguide\u002Fresponses","zh\u002F1.guide\u002F10.responses",{"title":52,"path":53,"stem":54},"规范","\u002Fzh\u002Fguide\u002Fspecifications","zh\u002F1.guide\u002F11.specifications",{"title":56,"path":57,"stem":58,"children":59},"TypeScript SDK","\u002Fzh\u002Ftypescript-sdk","zh\u002F2.typescript-sdk\u002F01.index",[60,61,64,68,71,74],{"title":10,"path":57,"stem":58},{"title":16,"path":62,"stem":63},"\u002Fzh\u002Ftypescript-sdk\u002Fgetting-started","zh\u002F2.typescript-sdk\u002F02.getting-started",{"title":65,"path":66,"stem":67},"配置","\u002Fzh\u002Ftypescript-sdk\u002Fconfiguration","zh\u002F2.typescript-sdk\u002F03.configuration",{"title":20,"path":69,"stem":70},"\u002Fzh\u002Ftypescript-sdk\u002Fmodels","zh\u002F2.typescript-sdk\u002F04.models",{"title":24,"path":72,"stem":73},"\u002Fzh\u002Ftypescript-sdk\u002Frelationships","zh\u002F2.typescript-sdk\u002F05.relationships",{"title":40,"path":75,"stem":76},"\u002Fzh\u002Ftypescript-sdk\u002Fquery-parameters","zh\u002F2.typescript-sdk\u002F06.query-parameters",{"title":78,"path":79,"stem":80},"视频教程","\u002Fzh\u002Fscreencasts","zh\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":10,"body":148,"description":943,"extension":944,"links":945,"meta":946,"navigation":233,"path":57,"seo":947,"stem":58,"__hash__":948},"docs_zh\u002Fzh\u002F2.typescript-sdk\u002F01.index.md",{"type":149,"value":150,"toc":939},"minimark",[151,155,159,879,882,929,935],[152,153,154],"h2",{"id":154},"工作原理",[156,157,158],"p",{},"定义一个带类型化属性的模型，设置资源名称，配置 API URL，就这样——一切就绪，可以开始使用 API 了 ✨",[160,161,166],"pre",{"className":162,"code":163,"language":164,"meta":165,"style":165},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {Orion} from \"@tailflow\u002Flaravel-orion\u002Flib\u002Forion\";\nimport {Model} from \"@tailflow\u002Flaravel-orion\u002Flib\u002Fmodel\";\n\nOrion.init('https:\u002F\u002Fyour-api.test');\nOrion.setToken('access-token-here');\n\nexport class Post extends Model\u003C{\n    title: string,\n    body: string\n}>\n{\n    public $resource(): string {\n        return 'posts';\n    }\n}\n\n\u002F\u002F 获取文章列表\nconst posts = await Post.$query().get();\n\n\u002F\u002F 搜索文章\nconst posts = await Post.$query().lookFor('some value').search();\n\n\u002F\u002F 创建文章\nconst newPost = await Post.$query().store({\n    title: 'New post' \u002F\u002F \u003C-- 属性是有类型的，所以这里能获得很好的自动补全\n});\nconsole.log(newPost.$attributes.title);  \u002F\u002F \u003C-- 这里也一样\n\n\u002F\u002F 获取文章\nconst post = await Post.$query().find(5);\n\n\u002F\u002F 更新文章\npost.$attributes.title = 'Updated post';\nawait post.$save();\n\u002F\u002F 或者\nawait post.$save({title: 'Updated post'}); \u002F\u002F \u003C-- 这里也是\n\u002F\u002F 或者\nconst updatedPost = await Post.$query().update(5, {\n    title: 'Updated title' \u002F\u002F \u003C-- 当然，这里也是\n});\n\n\u002F\u002F 删除文章\nconst deletedPost = await Post.$query().delete(5);\n\u002F\u002F 或者\nawait post.$destroy();\n\n\u002F\u002F 还有更多：搜索、关联操作等\n","typescript","",[167,168,169,205,228,235,263,286,291,314,330,341,347,353,370,386,392,398,403,410,444,449,455,499,504,510,539,556,565,595,600,606,641,646,652,678,696,702,738,743,777,794,803,808,814,847,852,868,873],"code",{"__ignoreMap":165},[170,171,174,178,182,186,189,192,195,199,202],"span",{"class":172,"line":173},"line",1,[170,175,177],{"class":176},"s7zQu","import",[170,179,181],{"class":180},"sMK4o"," {",[170,183,185],{"class":184},"sTEyZ","Orion",[170,187,188],{"class":180},"}",[170,190,191],{"class":176}," from",[170,193,194],{"class":180}," \"",[170,196,198],{"class":197},"sfazB","@tailflow\u002Flaravel-orion\u002Flib\u002Forion",[170,200,201],{"class":180},"\"",[170,203,204],{"class":180},";\n",[170,206,208,210,212,215,217,219,221,224,226],{"class":172,"line":207},2,[170,209,177],{"class":176},[170,211,181],{"class":180},[170,213,214],{"class":184},"Model",[170,216,188],{"class":180},[170,218,191],{"class":176},[170,220,194],{"class":180},[170,222,223],{"class":197},"@tailflow\u002Flaravel-orion\u002Flib\u002Fmodel",[170,225,201],{"class":180},[170,227,204],{"class":180},[170,229,231],{"class":172,"line":230},3,[170,232,234],{"emptyLinePlaceholder":233},true,"\n",[170,236,238,240,243,247,250,253,256,258,261],{"class":172,"line":237},4,[170,239,185],{"class":184},[170,241,242],{"class":180},".",[170,244,246],{"class":245},"s2Zo4","init",[170,248,249],{"class":184},"(",[170,251,252],{"class":180},"'",[170,254,255],{"class":197},"https:\u002F\u002Fyour-api.test",[170,257,252],{"class":180},[170,259,260],{"class":184},")",[170,262,204],{"class":180},[170,264,266,268,270,273,275,277,280,282,284],{"class":172,"line":265},5,[170,267,185],{"class":184},[170,269,242],{"class":180},[170,271,272],{"class":245},"setToken",[170,274,249],{"class":184},[170,276,252],{"class":180},[170,278,279],{"class":197},"access-token-here",[170,281,252],{"class":180},[170,283,260],{"class":184},[170,285,204],{"class":180},[170,287,289],{"class":172,"line":288},6,[170,290,234],{"emptyLinePlaceholder":233},[170,292,294,297,301,305,308,311],{"class":172,"line":293},7,[170,295,296],{"class":176},"export",[170,298,300],{"class":299},"spNyl"," class",[170,302,304],{"class":303},"sBMFI"," Post",[170,306,307],{"class":299}," extends",[170,309,310],{"class":245}," Model",[170,312,313],{"class":180},"\u003C{\n",[170,315,317,321,324,327],{"class":172,"line":316},8,[170,318,320],{"class":319},"swJcz","    title",[170,322,323],{"class":180},":",[170,325,326],{"class":303}," string",[170,328,329],{"class":180},",\n",[170,331,333,336,338],{"class":172,"line":332},9,[170,334,335],{"class":319},"    body",[170,337,323],{"class":180},[170,339,340],{"class":303}," string\n",[170,342,344],{"class":172,"line":343},10,[170,345,346],{"class":180},"}>\n",[170,348,350],{"class":172,"line":349},11,[170,351,352],{"class":180},"{\n",[170,354,356,359,362,365,367],{"class":172,"line":355},12,[170,357,358],{"class":299},"    public",[170,360,361],{"class":319}," $resource",[170,363,364],{"class":180},"():",[170,366,326],{"class":303},[170,368,369],{"class":180}," {\n",[170,371,373,376,379,382,384],{"class":172,"line":372},13,[170,374,375],{"class":176},"        return",[170,377,378],{"class":180}," '",[170,380,381],{"class":197},"posts",[170,383,252],{"class":180},[170,385,204],{"class":180},[170,387,389],{"class":172,"line":388},14,[170,390,391],{"class":180},"    }\n",[170,393,395],{"class":172,"line":394},15,[170,396,397],{"class":180},"}\n",[170,399,401],{"class":172,"line":400},16,[170,402,234],{"emptyLinePlaceholder":233},[170,404,406],{"class":172,"line":405},17,[170,407,409],{"class":408},"sHwdD","\u002F\u002F 获取文章列表\n",[170,411,413,416,419,422,425,427,429,432,435,437,440,442],{"class":172,"line":412},18,[170,414,415],{"class":299},"const",[170,417,418],{"class":184}," posts ",[170,420,421],{"class":180},"=",[170,423,424],{"class":176}," await",[170,426,304],{"class":184},[170,428,242],{"class":180},[170,430,431],{"class":245},"$query",[170,433,434],{"class":184},"()",[170,436,242],{"class":180},[170,438,439],{"class":245},"get",[170,441,434],{"class":184},[170,443,204],{"class":180},[170,445,447],{"class":172,"line":446},19,[170,448,234],{"emptyLinePlaceholder":233},[170,450,452],{"class":172,"line":451},20,[170,453,454],{"class":408},"\u002F\u002F 搜索文章\n",[170,456,458,460,462,464,466,468,470,472,474,476,479,481,483,486,488,490,492,495,497],{"class":172,"line":457},21,[170,459,415],{"class":299},[170,461,418],{"class":184},[170,463,421],{"class":180},[170,465,424],{"class":176},[170,467,304],{"class":184},[170,469,242],{"class":180},[170,471,431],{"class":245},[170,473,434],{"class":184},[170,475,242],{"class":180},[170,477,478],{"class":245},"lookFor",[170,480,249],{"class":184},[170,482,252],{"class":180},[170,484,485],{"class":197},"some value",[170,487,252],{"class":180},[170,489,260],{"class":184},[170,491,242],{"class":180},[170,493,494],{"class":245},"search",[170,496,434],{"class":184},[170,498,204],{"class":180},[170,500,502],{"class":172,"line":501},22,[170,503,234],{"emptyLinePlaceholder":233},[170,505,507],{"class":172,"line":506},23,[170,508,509],{"class":408},"\u002F\u002F 创建文章\n",[170,511,513,515,518,520,522,524,526,528,530,532,535,537],{"class":172,"line":512},24,[170,514,415],{"class":299},[170,516,517],{"class":184}," newPost ",[170,519,421],{"class":180},[170,521,424],{"class":176},[170,523,304],{"class":184},[170,525,242],{"class":180},[170,527,431],{"class":245},[170,529,434],{"class":184},[170,531,242],{"class":180},[170,533,534],{"class":245},"store",[170,536,249],{"class":184},[170,538,352],{"class":180},[170,540,542,544,546,548,551,553],{"class":172,"line":541},25,[170,543,320],{"class":319},[170,545,323],{"class":180},[170,547,378],{"class":180},[170,549,550],{"class":197},"New post",[170,552,252],{"class":180},[170,554,555],{"class":408}," \u002F\u002F \u003C-- 属性是有类型的，所以这里能获得很好的自动补全\n",[170,557,559,561,563],{"class":172,"line":558},26,[170,560,188],{"class":180},[170,562,260],{"class":184},[170,564,204],{"class":180},[170,566,568,571,573,576,579,581,584,586,589,592],{"class":172,"line":567},27,[170,569,570],{"class":184},"console",[170,572,242],{"class":180},[170,574,575],{"class":245},"log",[170,577,578],{"class":184},"(newPost",[170,580,242],{"class":180},[170,582,583],{"class":184},"$attributes",[170,585,242],{"class":180},[170,587,588],{"class":184},"title)",[170,590,591],{"class":180},";",[170,593,594],{"class":408},"  \u002F\u002F \u003C-- 这里也一样\n",[170,596,598],{"class":172,"line":597},28,[170,599,234],{"emptyLinePlaceholder":233},[170,601,603],{"class":172,"line":602},29,[170,604,605],{"class":408},"\u002F\u002F 获取文章\n",[170,607,609,611,614,616,618,620,622,624,626,628,631,633,637,639],{"class":172,"line":608},30,[170,610,415],{"class":299},[170,612,613],{"class":184}," post ",[170,615,421],{"class":180},[170,617,424],{"class":176},[170,619,304],{"class":184},[170,621,242],{"class":180},[170,623,431],{"class":245},[170,625,434],{"class":184},[170,627,242],{"class":180},[170,629,630],{"class":245},"find",[170,632,249],{"class":184},[170,634,636],{"class":635},"sbssI","5",[170,638,260],{"class":184},[170,640,204],{"class":180},[170,642,644],{"class":172,"line":643},31,[170,645,234],{"emptyLinePlaceholder":233},[170,647,649],{"class":172,"line":648},32,[170,650,651],{"class":408},"\u002F\u002F 更新文章\n",[170,653,655,658,660,662,664,667,669,671,674,676],{"class":172,"line":654},33,[170,656,657],{"class":184},"post",[170,659,242],{"class":180},[170,661,583],{"class":184},[170,663,242],{"class":180},[170,665,666],{"class":184},"title ",[170,668,421],{"class":180},[170,670,378],{"class":180},[170,672,673],{"class":197},"Updated post",[170,675,252],{"class":180},[170,677,204],{"class":180},[170,679,681,684,687,689,692,694],{"class":172,"line":680},34,[170,682,683],{"class":176},"await",[170,685,686],{"class":184}," post",[170,688,242],{"class":180},[170,690,691],{"class":245},"$save",[170,693,434],{"class":184},[170,695,204],{"class":180},[170,697,699],{"class":172,"line":698},35,[170,700,701],{"class":408},"\u002F\u002F 或者\n",[170,703,705,707,709,711,713,715,718,721,723,725,727,729,731,733,735],{"class":172,"line":704},36,[170,706,683],{"class":176},[170,708,686],{"class":184},[170,710,242],{"class":180},[170,712,691],{"class":245},[170,714,249],{"class":184},[170,716,717],{"class":180},"{",[170,719,720],{"class":319},"title",[170,722,323],{"class":180},[170,724,378],{"class":180},[170,726,673],{"class":197},[170,728,252],{"class":180},[170,730,188],{"class":180},[170,732,260],{"class":184},[170,734,591],{"class":180},[170,736,737],{"class":408}," \u002F\u002F \u003C-- 这里也是\n",[170,739,741],{"class":172,"line":740},37,[170,742,701],{"class":408},[170,744,746,748,751,753,755,757,759,761,763,765,768,770,772,775],{"class":172,"line":745},38,[170,747,415],{"class":299},[170,749,750],{"class":184}," updatedPost ",[170,752,421],{"class":180},[170,754,424],{"class":176},[170,756,304],{"class":184},[170,758,242],{"class":180},[170,760,431],{"class":245},[170,762,434],{"class":184},[170,764,242],{"class":180},[170,766,767],{"class":245},"update",[170,769,249],{"class":184},[170,771,636],{"class":635},[170,773,774],{"class":180},",",[170,776,369],{"class":180},[170,778,780,782,784,786,789,791],{"class":172,"line":779},39,[170,781,320],{"class":319},[170,783,323],{"class":180},[170,785,378],{"class":180},[170,787,788],{"class":197},"Updated title",[170,790,252],{"class":180},[170,792,793],{"class":408}," \u002F\u002F \u003C-- 当然，这里也是\n",[170,795,797,799,801],{"class":172,"line":796},40,[170,798,188],{"class":180},[170,800,260],{"class":184},[170,802,204],{"class":180},[170,804,806],{"class":172,"line":805},41,[170,807,234],{"emptyLinePlaceholder":233},[170,809,811],{"class":172,"line":810},42,[170,812,813],{"class":408},"\u002F\u002F 删除文章\n",[170,815,817,819,822,824,826,828,830,832,834,836,839,841,843,845],{"class":172,"line":816},43,[170,818,415],{"class":299},[170,820,821],{"class":184}," deletedPost ",[170,823,421],{"class":180},[170,825,424],{"class":176},[170,827,304],{"class":184},[170,829,242],{"class":180},[170,831,431],{"class":245},[170,833,434],{"class":184},[170,835,242],{"class":180},[170,837,838],{"class":245},"delete",[170,840,249],{"class":184},[170,842,636],{"class":635},[170,844,260],{"class":184},[170,846,204],{"class":180},[170,848,850],{"class":172,"line":849},44,[170,851,701],{"class":408},[170,853,855,857,859,861,864,866],{"class":172,"line":854},45,[170,856,683],{"class":176},[170,858,686],{"class":184},[170,860,242],{"class":180},[170,862,863],{"class":245},"$destroy",[170,865,434],{"class":184},[170,867,204],{"class":180},[170,869,871],{"class":172,"line":870},46,[170,872,234],{"emptyLinePlaceholder":233},[170,874,876],{"class":172,"line":875},47,[170,877,878],{"class":408},"\u002F\u002F 还有更多：搜索、关联操作等\n",[152,880,881],{"id":881},"功能特性",[883,884,885,899,908,915],"ul",{},[886,887,888,889,894,895,898],"li",{},"带类型化",[890,891,893],"a",{"href":892},"\u002Fzh\u002Ftypescript-sdk\u002Fmodels#%E5%B1%9E%E6%80%A7","属性","与",[890,896,24],{"href":897},"\u002Fzh\u002Ftypescript-sdk\u002Frelationships#%E5%AE%9A%E4%B9%89","的模型",[886,900,901,902,904,905,907],{},"支持在",[890,903,20],{"href":69},"和",[890,906,24],{"href":72},"资源上执行所有 API 操作",[886,909,910,911],{},"丰富的",[890,912,914],{"href":913},"\u002Fzh\u002Ftypescript-sdk\u002Fmodels#%E6%90%9C%E7%B4%A2%E8%B5%84%E6%BA%90","搜索查询",[886,916,917,921,922,928],{},[890,918,920],{"href":919},"\u002Fzh\u002Ftypescript-sdk\u002Fconfiguration#%E4%B8%BA-spa-%E9%9B%86%E6%88%90-sanctum","获取 CSRF cookie","，与 ",[890,923,927],{"href":924,"rel":925},"https:\u002F\u002Flaravel.com\u002Fdocs\u002Fmaster\u002Fsanctum#spa-authenticating",[926],"nofollow","Sanctum"," 无缝集成",[156,930,931,932,934],{},"准备好深入了解了吗？前往",[890,933,16],{"href":62},"章节，开始构建吧。",[936,937,938],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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":165,"searchDepth":173,"depth":207,"links":940},[941,942],{"id":154,"depth":207,"text":154},{"id":881,"depth":207,"text":881},"欢迎阅读 Orion for Laravel TypeScript SDK 文档。","md",null,{},{"title":10,"description":943},"0EKWOYviqusNtfpEzjuihgrZQIlW35s8J4TQHgPN8Po",[950,952],{"title":52,"path":53,"stem":54,"description":951,"children":-1},"了解如何自动生成 OpenAPI 规范。",{"title":16,"path":62,"stem":63,"description":953,"children":-1},"迈出使用 Orion TypeScript SDK 的第一步。",{"id":955,"title":88,"body":956,"description":1600,"extension":944,"links":945,"meta":1601,"navigation":233,"path":1602,"seo":1603,"stem":1604,"__hash__":1605},"docs_en\u002F2.typescript-sdk\u002F01.index.md",{"type":149,"value":957,"toc":1596},[958,962,965,1540,1544,1587,1594],[152,959,961],{"id":960},"how-it-works","How It Works",[156,963,964],{},"Define a model with typed attributes, set the resource name, configure the API URL, and that's it - everything is ready to work with the API ✨",[160,966,968],{"className":162,"code":967,"language":164,"meta":165,"style":165},"import {Orion} from \"@tailflow\u002Flaravel-orion\u002Flib\u002Forion\";\nimport {Model} from \"@tailflow\u002Flaravel-orion\u002Flib\u002Fmodel\";\n\nOrion.init('https:\u002F\u002Fyour-api.test');\nOrion.setToken('access-token-here');\n\nexport class Post extends Model\u003C{\n    title: string,\n    body: string\n}>\n{\n    public $resource(): string {\n        return 'posts';\n    }\n}\n\n\u002F\u002F retrieve a list of posts\nconst posts = await Post.$query().get();\n\n\u002F\u002F search for posts\nconst posts = await Post.$query().lookFor('some value').search();\n\n\u002F\u002F create a post\nconst newPost = await Post.$query().store({\n    title: 'New post' \u002F\u002F \u003C-- you get a nice autocompletion here, because the attributes are typed \n});\nconsole.log(newPost.$attributes.title);  \u002F\u002F \u003C-- oh, and here as well\n\n\u002F\u002F retrieve a post\nconst post = await Post.$query().find(5);\n\n\u002F\u002F update a post\npost.$attributes.title = 'Updated post';\nawait post.$save();\n\u002F\u002F or\nawait post.$save({title: 'Updated post'}); \u002F\u002F \u003C-- and here\n\u002F\u002F or\nconst updatedPost = await Post.$query().update(5, {\n    title: 'Updated title' \u002F\u002F \u003C-- and, of course, here\n});\n\n\u002F\u002F delete a post\nconst deletedPost = await Post.$query().delete(5);\n\u002F\u002F or\nawait post.$destroy();\n\n\u002F\u002F and more: search, relationship operations, etc.\n",[167,969,970,990,1010,1014,1034,1054,1058,1072,1082,1090,1094,1098,1110,1122,1126,1130,1134,1139,1165,1169,1174,1214,1218,1223,1249,1264,1272,1295,1299,1304,1334,1338,1343,1365,1379,1384,1417,1421,1451,1466,1474,1478,1483,1513,1517,1531,1535],{"__ignoreMap":165},[170,971,972,974,976,978,980,982,984,986,988],{"class":172,"line":173},[170,973,177],{"class":176},[170,975,181],{"class":180},[170,977,185],{"class":184},[170,979,188],{"class":180},[170,981,191],{"class":176},[170,983,194],{"class":180},[170,985,198],{"class":197},[170,987,201],{"class":180},[170,989,204],{"class":180},[170,991,992,994,996,998,1000,1002,1004,1006,1008],{"class":172,"line":207},[170,993,177],{"class":176},[170,995,181],{"class":180},[170,997,214],{"class":184},[170,999,188],{"class":180},[170,1001,191],{"class":176},[170,1003,194],{"class":180},[170,1005,223],{"class":197},[170,1007,201],{"class":180},[170,1009,204],{"class":180},[170,1011,1012],{"class":172,"line":230},[170,1013,234],{"emptyLinePlaceholder":233},[170,1015,1016,1018,1020,1022,1024,1026,1028,1030,1032],{"class":172,"line":237},[170,1017,185],{"class":184},[170,1019,242],{"class":180},[170,1021,246],{"class":245},[170,1023,249],{"class":184},[170,1025,252],{"class":180},[170,1027,255],{"class":197},[170,1029,252],{"class":180},[170,1031,260],{"class":184},[170,1033,204],{"class":180},[170,1035,1036,1038,1040,1042,1044,1046,1048,1050,1052],{"class":172,"line":265},[170,1037,185],{"class":184},[170,1039,242],{"class":180},[170,1041,272],{"class":245},[170,1043,249],{"class":184},[170,1045,252],{"class":180},[170,1047,279],{"class":197},[170,1049,252],{"class":180},[170,1051,260],{"class":184},[170,1053,204],{"class":180},[170,1055,1056],{"class":172,"line":288},[170,1057,234],{"emptyLinePlaceholder":233},[170,1059,1060,1062,1064,1066,1068,1070],{"class":172,"line":293},[170,1061,296],{"class":176},[170,1063,300],{"class":299},[170,1065,304],{"class":303},[170,1067,307],{"class":299},[170,1069,310],{"class":245},[170,1071,313],{"class":180},[170,1073,1074,1076,1078,1080],{"class":172,"line":316},[170,1075,320],{"class":319},[170,1077,323],{"class":180},[170,1079,326],{"class":303},[170,1081,329],{"class":180},[170,1083,1084,1086,1088],{"class":172,"line":332},[170,1085,335],{"class":319},[170,1087,323],{"class":180},[170,1089,340],{"class":303},[170,1091,1092],{"class":172,"line":343},[170,1093,346],{"class":180},[170,1095,1096],{"class":172,"line":349},[170,1097,352],{"class":180},[170,1099,1100,1102,1104,1106,1108],{"class":172,"line":355},[170,1101,358],{"class":299},[170,1103,361],{"class":319},[170,1105,364],{"class":180},[170,1107,326],{"class":303},[170,1109,369],{"class":180},[170,1111,1112,1114,1116,1118,1120],{"class":172,"line":372},[170,1113,375],{"class":176},[170,1115,378],{"class":180},[170,1117,381],{"class":197},[170,1119,252],{"class":180},[170,1121,204],{"class":180},[170,1123,1124],{"class":172,"line":388},[170,1125,391],{"class":180},[170,1127,1128],{"class":172,"line":394},[170,1129,397],{"class":180},[170,1131,1132],{"class":172,"line":400},[170,1133,234],{"emptyLinePlaceholder":233},[170,1135,1136],{"class":172,"line":405},[170,1137,1138],{"class":408},"\u002F\u002F retrieve a list of posts\n",[170,1140,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163],{"class":172,"line":412},[170,1142,415],{"class":299},[170,1144,418],{"class":184},[170,1146,421],{"class":180},[170,1148,424],{"class":176},[170,1150,304],{"class":184},[170,1152,242],{"class":180},[170,1154,431],{"class":245},[170,1156,434],{"class":184},[170,1158,242],{"class":180},[170,1160,439],{"class":245},[170,1162,434],{"class":184},[170,1164,204],{"class":180},[170,1166,1167],{"class":172,"line":446},[170,1168,234],{"emptyLinePlaceholder":233},[170,1170,1171],{"class":172,"line":451},[170,1172,1173],{"class":408},"\u002F\u002F search for posts\n",[170,1175,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212],{"class":172,"line":457},[170,1177,415],{"class":299},[170,1179,418],{"class":184},[170,1181,421],{"class":180},[170,1183,424],{"class":176},[170,1185,304],{"class":184},[170,1187,242],{"class":180},[170,1189,431],{"class":245},[170,1191,434],{"class":184},[170,1193,242],{"class":180},[170,1195,478],{"class":245},[170,1197,249],{"class":184},[170,1199,252],{"class":180},[170,1201,485],{"class":197},[170,1203,252],{"class":180},[170,1205,260],{"class":184},[170,1207,242],{"class":180},[170,1209,494],{"class":245},[170,1211,434],{"class":184},[170,1213,204],{"class":180},[170,1215,1216],{"class":172,"line":501},[170,1217,234],{"emptyLinePlaceholder":233},[170,1219,1220],{"class":172,"line":506},[170,1221,1222],{"class":408},"\u002F\u002F create a post\n",[170,1224,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247],{"class":172,"line":512},[170,1226,415],{"class":299},[170,1228,517],{"class":184},[170,1230,421],{"class":180},[170,1232,424],{"class":176},[170,1234,304],{"class":184},[170,1236,242],{"class":180},[170,1238,431],{"class":245},[170,1240,434],{"class":184},[170,1242,242],{"class":180},[170,1244,534],{"class":245},[170,1246,249],{"class":184},[170,1248,352],{"class":180},[170,1250,1251,1253,1255,1257,1259,1261],{"class":172,"line":541},[170,1252,320],{"class":319},[170,1254,323],{"class":180},[170,1256,378],{"class":180},[170,1258,550],{"class":197},[170,1260,252],{"class":180},[170,1262,1263],{"class":408}," \u002F\u002F \u003C-- you get a nice autocompletion here, because the attributes are typed \n",[170,1265,1266,1268,1270],{"class":172,"line":558},[170,1267,188],{"class":180},[170,1269,260],{"class":184},[170,1271,204],{"class":180},[170,1273,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292],{"class":172,"line":567},[170,1275,570],{"class":184},[170,1277,242],{"class":180},[170,1279,575],{"class":245},[170,1281,578],{"class":184},[170,1283,242],{"class":180},[170,1285,583],{"class":184},[170,1287,242],{"class":180},[170,1289,588],{"class":184},[170,1291,591],{"class":180},[170,1293,1294],{"class":408},"  \u002F\u002F \u003C-- oh, and here as well\n",[170,1296,1297],{"class":172,"line":597},[170,1298,234],{"emptyLinePlaceholder":233},[170,1300,1301],{"class":172,"line":602},[170,1302,1303],{"class":408},"\u002F\u002F retrieve a post\n",[170,1305,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332],{"class":172,"line":608},[170,1307,415],{"class":299},[170,1309,613],{"class":184},[170,1311,421],{"class":180},[170,1313,424],{"class":176},[170,1315,304],{"class":184},[170,1317,242],{"class":180},[170,1319,431],{"class":245},[170,1321,434],{"class":184},[170,1323,242],{"class":180},[170,1325,630],{"class":245},[170,1327,249],{"class":184},[170,1329,636],{"class":635},[170,1331,260],{"class":184},[170,1333,204],{"class":180},[170,1335,1336],{"class":172,"line":643},[170,1337,234],{"emptyLinePlaceholder":233},[170,1339,1340],{"class":172,"line":648},[170,1341,1342],{"class":408},"\u002F\u002F update a post\n",[170,1344,1345,1347,1349,1351,1353,1355,1357,1359,1361,1363],{"class":172,"line":654},[170,1346,657],{"class":184},[170,1348,242],{"class":180},[170,1350,583],{"class":184},[170,1352,242],{"class":180},[170,1354,666],{"class":184},[170,1356,421],{"class":180},[170,1358,378],{"class":180},[170,1360,673],{"class":197},[170,1362,252],{"class":180},[170,1364,204],{"class":180},[170,1366,1367,1369,1371,1373,1375,1377],{"class":172,"line":680},[170,1368,683],{"class":176},[170,1370,686],{"class":184},[170,1372,242],{"class":180},[170,1374,691],{"class":245},[170,1376,434],{"class":184},[170,1378,204],{"class":180},[170,1380,1381],{"class":172,"line":698},[170,1382,1383],{"class":408},"\u002F\u002F or\n",[170,1385,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414],{"class":172,"line":704},[170,1387,683],{"class":176},[170,1389,686],{"class":184},[170,1391,242],{"class":180},[170,1393,691],{"class":245},[170,1395,249],{"class":184},[170,1397,717],{"class":180},[170,1399,720],{"class":319},[170,1401,323],{"class":180},[170,1403,378],{"class":180},[170,1405,673],{"class":197},[170,1407,252],{"class":180},[170,1409,188],{"class":180},[170,1411,260],{"class":184},[170,1413,591],{"class":180},[170,1415,1416],{"class":408}," \u002F\u002F \u003C-- and here\n",[170,1418,1419],{"class":172,"line":740},[170,1420,1383],{"class":408},[170,1422,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449],{"class":172,"line":745},[170,1424,415],{"class":299},[170,1426,750],{"class":184},[170,1428,421],{"class":180},[170,1430,424],{"class":176},[170,1432,304],{"class":184},[170,1434,242],{"class":180},[170,1436,431],{"class":245},[170,1438,434],{"class":184},[170,1440,242],{"class":180},[170,1442,767],{"class":245},[170,1444,249],{"class":184},[170,1446,636],{"class":635},[170,1448,774],{"class":180},[170,1450,369],{"class":180},[170,1452,1453,1455,1457,1459,1461,1463],{"class":172,"line":779},[170,1454,320],{"class":319},[170,1456,323],{"class":180},[170,1458,378],{"class":180},[170,1460,788],{"class":197},[170,1462,252],{"class":180},[170,1464,1465],{"class":408}," \u002F\u002F \u003C-- and, of course, here\n",[170,1467,1468,1470,1472],{"class":172,"line":796},[170,1469,188],{"class":180},[170,1471,260],{"class":184},[170,1473,204],{"class":180},[170,1475,1476],{"class":172,"line":805},[170,1477,234],{"emptyLinePlaceholder":233},[170,1479,1480],{"class":172,"line":810},[170,1481,1482],{"class":408},"\u002F\u002F delete a post\n",[170,1484,1485,1487,1489,1491,1493,1495,1497,1499,1501,1503,1505,1507,1509,1511],{"class":172,"line":816},[170,1486,415],{"class":299},[170,1488,821],{"class":184},[170,1490,421],{"class":180},[170,1492,424],{"class":176},[170,1494,304],{"class":184},[170,1496,242],{"class":180},[170,1498,431],{"class":245},[170,1500,434],{"class":184},[170,1502,242],{"class":180},[170,1504,838],{"class":245},[170,1506,249],{"class":184},[170,1508,636],{"class":635},[170,1510,260],{"class":184},[170,1512,204],{"class":180},[170,1514,1515],{"class":172,"line":849},[170,1516,1383],{"class":408},[170,1518,1519,1521,1523,1525,1527,1529],{"class":172,"line":854},[170,1520,683],{"class":176},[170,1522,686],{"class":184},[170,1524,242],{"class":180},[170,1526,863],{"class":245},[170,1528,434],{"class":184},[170,1530,204],{"class":180},[170,1532,1533],{"class":172,"line":870},[170,1534,234],{"emptyLinePlaceholder":233},[170,1536,1537],{"class":172,"line":875},[170,1538,1539],{"class":408},"\u002F\u002F and more: search, relationship operations, etc.\n",[152,1541,1543],{"id":1542},"features","Features",[883,1545,1546,1558,1570,1577],{},[886,1547,1548,1549,1553,1554],{},"Models with typed ",[890,1550,1552],{"href":1551},"\u002Ftypescript-sdk\u002Fmodels#attributes","attributes"," and ",[890,1555,1557],{"href":1556},"\u002Ftypescript-sdk\u002Frelationships#definition","relationships",[886,1559,1560,1561,1553,1565,1569],{},"Support of all API operations on ",[890,1562,1564],{"href":1563},"\u002Ftypescript-sdk\u002Fmodels","model",[890,1566,1568],{"href":1567},"\u002Ftypescript-sdk\u002Frelationships","relationship"," resources",[886,1571,1572,1573],{},"Extensive ",[890,1574,1576],{"href":1575},"\u002Ftypescript-sdk\u002Fmodels#searching-for-resources","search queries",[886,1578,1579,1583,1584],{},[890,1580,1582],{"href":1581},"\u002Ftypescript-sdk\u002Fconfiguration#integration-with-sanctum-for-spa","CSRF cookie fetching"," for seamless integration with ",[890,1585,927],{"href":924,"rel":1586},[926],[156,1588,1589,1590,1593],{},"Ready to dive deeper? Head to the ",[890,1591,90],{"href":1592},"\u002Ftypescript-sdk\u002Fgetting-started"," section and start building.",[936,1595,938],{},{"title":165,"searchDepth":173,"depth":207,"links":1597},[1598,1599],{"id":960,"depth":207,"text":961},{"id":1542,"depth":207,"text":1543},"Welcome to Orion for Laravel TypeScript SDK documentation.",{},"\u002Ftypescript-sdk",{"title":88,"description":1600},"2.typescript-sdk\u002F01.index","l_L2F9ThhKxmk5Qbbzxd66_ACgjX6Mv5N9mz7Pq1YeY",1784394467892]